我将我的mysql表导入sqlite,当我在那里运行create table查询时,我发现了这个错误并且无法修复它。
我想知道这个查询的错误是什么。我被告知错误接近“UNSIGNED”:语法错误:CREATE TABLE t_malayalam
(
id
int(8)UNSIGNED
这是我的查询
CREATE TABLE `t_malayalam` (
`id` int(8) UNSIGNED ZEROFILL NOT NULL,
`b` int(11) NOT NULL,
`c` int(11) NOT NULL,
`v` int(11) NOT NULL,
`t` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
)
答案 0 :(得分:0)
这里有几个问题。一个是CHARACTER SET utf8
无效,因为SET
是SQLite3中的关键字。 (你可能想要摆脱COLLATE
条款,因为你选择的整理' utf8_bin无论如何都是无效的。详情请见https://www.sqlite.org/datatype3.html#collation。除此之外,你需要删除UNSIGNED
和ZEROFILL
等列类型后的无效规范。 (另请注意,int(8)
等类型虽然合法,但却等同于简单的integer
类型。)
由于您在评论中说您希望id
字段是行的唯一指示符,因此您应该指定它:
id integer primary key
(不需要NOT NULL
;这将是自动的。)
所以,我认为你想要这样的东西:
CREATE TABLE `t_malayalam` (
`id` INTEGER PRIMARY KEY,
`b` INTEGER NOT NULL,
`c` INTEGER NOT NULL,
`v` INTEGER NOT NULL,
`t` TEXT NOT NULL
)
请注意,反引号都是不必要的(和非标准的SQL),但也不会造成任何伤害。