我将我的mysql表导入到sqlite中,当我在那里运行创建表查询时,我发现了此错误并且无法修复它。我想知道此查询的错误是什么。有人告诉我,错误接近" unsigned":语法错误:创建表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
)
这里有几个问题。一个是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(,但也不要造成任何伤害。