duy nhất nơi tôi có thể nghĩ đến, nơi có %
sẽ được nhân đôi trong Postgres tiêu chuẩn nằm trong format()
, thường được sử dụng để tạo chuỗi truy vấn cho SQL động. So sánh các ví dụ trên SO.
Khó khăn khi sử dụng toán tử modulo %
trong một tuyên bố động!
Tôi nghi ngờ họ đang chạy SQL động đằng sau bức màn - mà họ đã khái quát hóa và đơn giản hóa cho bài viết. (Tên đủ điều kiện giản đồ của chuỗi là 'insta5.table_id_seq'
và bảng sẽ không được đặt tên là "table".) Trong quá trình này, họ đã quên "unescape" toán tử modulo.
Đó là những gì họ thực sự có thể đang chạy:
EXECUTE format($$SELECT nextval('%I') %% 1024$$, seq_name)
INTO seq_id;