我的 SQL 语句中 "or" 的错误是什么?
What is this error with "or" in my SQL statement?
所以我尝试在 Netbeans 中创建一个 Derby 数据库,以便以后可以构建一个应用程序来与之交互,但我遇到了一个令人困惑但可能很简单的错误。
具体来说,我正在尝试为 PK(主键)列创建一个自动递增序列。
我创建序列的代码如下。
--Creating sequences here
--Pk sequence for characters table here
CREATE OR REPLACE SEQUENCE characters_pk_sequence MINVALUE 1 START WITH 1 INCREMENT BY 1;
-- End of PK sequence for characters table here
控制台错误如下。
Error code 30000, SQL state 42X01: Syntax error: Encountered "OR" at line 1, column 8.
这不是我唯一尝试过的方法,我尝试了网上介绍的其他方法,但都没有用。伙计们,我在这里做错了什么?
编辑:解决了伙计们。然而,我不能再接受我自己的回答 2 天。
(回答我自己的问题,感觉很奇怪。)
所以我想出了如何做我想做的事情。 (即自动递增 PK)此版本的数据库软件与我之前第一次使用的旧版本的工作方式不同。
我在这个 Whosebug question 中找到了合适的答案。
要在 Derby 中创建一个自动递增的键,您可以在 table 中这样做
CREATE TABLE characters(
hp INTEGER,
hp_max INTEGER,
armor INTEGER,
-- Various other table columns, etc.
char_pk INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1)
);
这样做让我能够创建一个自动递增的 PK,而无需在其他地方指定它,这非常棒。
所以我尝试在 Netbeans 中创建一个 Derby 数据库,以便以后可以构建一个应用程序来与之交互,但我遇到了一个令人困惑但可能很简单的错误。
具体来说,我正在尝试为 PK(主键)列创建一个自动递增序列。
我创建序列的代码如下。
--Creating sequences here
--Pk sequence for characters table here
CREATE OR REPLACE SEQUENCE characters_pk_sequence MINVALUE 1 START WITH 1 INCREMENT BY 1;
-- End of PK sequence for characters table here
控制台错误如下。
Error code 30000, SQL state 42X01: Syntax error: Encountered "OR" at line 1, column 8.
这不是我唯一尝试过的方法,我尝试了网上介绍的其他方法,但都没有用。伙计们,我在这里做错了什么?
编辑:解决了伙计们。然而,我不能再接受我自己的回答 2 天。
(回答我自己的问题,感觉很奇怪。) 所以我想出了如何做我想做的事情。 (即自动递增 PK)此版本的数据库软件与我之前第一次使用的旧版本的工作方式不同。
我在这个 Whosebug question 中找到了合适的答案。
要在 Derby 中创建一个自动递增的键,您可以在 table 中这样做
CREATE TABLE characters(
hp INTEGER,
hp_max INTEGER,
armor INTEGER,
-- Various other table columns, etc.
char_pk INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1)
);
这样做让我能够创建一个自动递增的 PK,而无需在其他地方指定它,这非常棒。