使用SQL向表添加列

时间:2014-07-09 23:07:53

标签: sql database h2

我遇到了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;

3 个答案:

答案 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 AFTERBEFORE应该可以正常工作但是如果它不起作用那么spec就错了。在这种情况下,请尝试删除AFTER c1或尝试使用BEFORE c3代替AFTER c1

答案 2 :(得分:0)

由于Rahul,我找到了解决问题的方法,虽然解决方案没有告诉我为什么我的第一种方法没有成功。

不使用“之后”使用“之前”不会调用错误消息:

alter table t1 add column c2 bool before c3;