“UNSIGNED”:语法错误:导入到sqlite时创建表查询

时间:2018-04-29 16:40:42

标签: mysql sqlite phpmyadmin

我将我的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
)

1 个答案:

答案 0 :(得分:0)

这里有几个问题。一个是CHARACTER SET utf8无效,因为SET是SQLite3中的关键字。 (你可能想要摆脱COLLATE条款,因为你选择的整理' utf8_bin无论如何都是无效的。详情请见https://www.sqlite.org/datatype3.html#collation。除此之外,你需要删除UNSIGNEDZEROFILL等列类型后的无效规范。 (另请注意,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),但也不会造成任何伤害。