重置序列(区分大小写)
Resetting a sequence (case sensitive)
我尝试将序列 (test_Id_seq
) 设置为这样的新值(注意序列名称中的大写字母 'I'):
SELECT setval(public."test_Id_seq", (select max("Id") from public.test_events), true);
我收到这个错误:
ERROR: missing FROM-clause entry for table "public" LINE 1: SELECT
setval(public."test_events_Id_seq", (select max("Id...
^
********** Error **********
ERROR: missing FROM-clause entry for table "public" SQL-Status: 42P01
我尝试了括号的不同位置,但没有其他结果。
如何设置序列值? select max() 本身工作正常。
字面量应该用单引号括起来,试试:
SELECT setval('public."test_Id_seq"', (select max("Id") from public.test_events), true);
另一种在代码中更方便使用并且对我有用的方法是
SELECT setval('"test_Id_seq"'::text, (select max("Id") from test_events), true);
该字符串被双引号括起来,因此它通过解析器保持大小写不变。
我尝试将序列 (test_Id_seq
) 设置为这样的新值(注意序列名称中的大写字母 'I'):
SELECT setval(public."test_Id_seq", (select max("Id") from public.test_events), true);
我收到这个错误:
ERROR: missing FROM-clause entry for table "public" LINE 1: SELECT setval(public."test_events_Id_seq", (select max("Id... ^ ********** Error **********
ERROR: missing FROM-clause entry for table "public" SQL-Status: 42P01
我尝试了括号的不同位置,但没有其他结果。
如何设置序列值? select max() 本身工作正常。
字面量应该用单引号括起来,试试:
SELECT setval('public."test_Id_seq"', (select max("Id") from public.test_events), true);
另一种在代码中更方便使用并且对我有用的方法是
SELECT setval('"test_Id_seq"'::text, (select max("Id") from test_events), true);
该字符串被双引号括起来,因此它通过解析器保持大小写不变。