更新db后找不到列

时间:2017-03-14 20:24:30

标签: java jdbc h2 flyway

我是java的新手。我有两个问题。我正在使用flyway和h2 db我添加了两个文件sql中的一个用于创建具有两列的表格

CREATE TABLE contacts (
id bigint auto_increment NOT NULL, 
name varchar(128) NOT NULL,
PRIMARY KEY(id)
);

另一个是改变那样的新列

ALTER TABLE contacts
ADD COLUMN contacts Varchar(255);  

1-我使用flyway.migrate工作正常,但我遇到不匹配所以我使用flyway.repair()是正常的每次使用它?

2-当我写了用于执行insert sql命令的statment sql时

stmt.execute("INSERT INTO contacts(name,contacts) VALUES('ABC','ABC@yahoo.com')");

我得到了

Exception in thread "main" org.h2.jdbc.JdbcSQLException: Column "CONTACTS" not found; SQL statement:
INSERT INTO contacts(name,contacts) VALUES('ABC ','ABC@yahoo.com') [42122-173]

1 个答案:

答案 0 :(得分:0)

您需要在第二个sql文件中添加AFTER

ALTER TABLE contacts
ADD COLUMN contacts Varchar(255) AFTER name;