我遇到了h2数据库的SQL问题。我想添加一个列,但总是会出错,尽管我严格遵守syntax。
示例:
create table t1 (c1 bool,c3 bool);
alter table t1 add column c2 bool after c1;
创建表格没问题。但是当谈到第二行时,会出现以下错误:
Syntax error in SQL statement "ALTER TABLE T1 ADD COLUMN C2 BOOL AFTER[*] C1 "; SQL statement:
alter table t1 add column c2 bool after c1 [42000-168] 42000/42000 (Help)
我做错了什么?
编辑:当我省略“column”时会显示相同的错误消息:
alter table t1 add c2 bool after c1;
答案 0 :(得分:1)
请删除专栏
create table t1 (c1 bool,c3 bool);
alter table t1 add c2 bool after c1;
答案 1 :(得分:0)
根据发布的H2文档链接,ALTER
的语法是
ALTER TABLE TEST ADD CREATEDATE TIMESTAMP
因此,根据您发布的ALTER
查询,如下所示,仅包含column
alter table t1 add column c2 bool after c1;
修改强>
Per H2 Spec AFTER
和BEFORE
应该可以正常工作但是如果它不起作用那么spec就错了。在这种情况下,请尝试删除AFTER c1
或尝试使用BEFORE c3
代替AFTER c1
。
答案 2 :(得分:0)
由于Rahul,我找到了解决问题的方法,虽然解决方案没有告诉我为什么我的第一种方法没有成功。
不使用“之后”使用“之前”不会调用错误消息:
alter table t1 add column c2 bool before c3;