0

我遇到了这个问题:

Caused by: java.lang.IllegalArgumentException: 
Error: User error in query: 
CREATE TABLE failed for table TEST: 
Table exists but definitions do not match

我使用控制台在现有数据库中添加了 2 个新列,并将它们添加到表创建语句中。当我再次运行创建表时它会遇到错误。我检查了所有内容,它们都匹配,(名称,类型......)

4

1 回答 1

0

创建表时,列的顺序很重要。你验证了吗?CREATE TABLE 子句中的 IF NOT EXISTS 检查表的相同结构。有关详细信息,请参阅下面的文档。 https://docs.oracle.com/en/database/other-databases/nosql-database/21.1/sqlreferencefornosql/create-table.html

这会通知您,您尝试创建的表已退出,但结构不同。它可能很有用。

更改列顺序时显示错误的示例:

sql-> CREATE TABLE IF NOT EXISTS testing_tbl(id INTEGER, firstName STRING,
    lastName STRING,
PRIMARY KEY (id));

Statement completed successfully

sql-> CREATE TABLE IF NOT EXISTS testing_tbl(id INTEGER, firstName STRING,

    lastName STRING,

PRIMARY KEY (id));

Statement did not require execution

sql-> CREATE TABLE IF NOT EXISTS testing_tbl(id INTEGER, lastName STRING,
firstName STRING,
PRIMARY KEY (id));


Error handling command CREATE TABLE IF NOT EXISTS testing_tbl(id INTEGER,
    lastName STRING,
firstName STRING,
PRIMARY KEY (id)): Error: User error in query: CREATE TABLE failed for table testing_tbl: Table exists but definitions do not match
于 2021-06-07T09:10:17.843 回答