MySQL语句中的错误是什么?

时间:2011-01-14 07:41:45

标签: mysql

以下SQL语句根据phpMyAdmin有语法错误,但我无法发现它是什么。有什么想法吗?

CREATE TABLE allocations(
`student_uid` INT unsigned NOT NULL DEFAULT 0,
`active` INT unsigned NOT NULL DEFAULT 1,
`name` VARCHAR( 255 ) NOT NULL DEFAULT '',
`internal_id` VARCHAR( 255 ) DEFAULT '',
`tutor_uid` INT NOT NULL DEFAULT 0,
`allocater_uid` INT unsigned NOT NULL DEFAULT 0,
`time_created` INT NOT NULL DEFAULT 0,
`remote_time` FLOAT NOT NULL DEFAULT 0,
`next_lesson` VARCHAR NOT NULL DEFAULT -1,
PRIMARY KEY ( student_uid )
);

4 个答案:

答案 0 :(得分:6)

VARCHAR类型需要一个大小(并且在值周围使用引号很聪明),所以请尝试替换

`next_lesson` VARCHAR NOT NULL DEFAULT -1,

`next_lesson` VARCHAR(255) NOT NULL DEFAULT '-1',

答案 1 :(得分:1)

您的上一个VARCHAR没有长度。

答案 2 :(得分:0)

我能想到的两件事:

  1. 我认为你不能用一个空的默认值设置一个varchar not null,mysql可能会认为一个空字符串与null相同。

  2. 将varchar字段设置为字符串而不是数字,所以:

    next_lesson VARCHAR NOT NULL DEFAULT'-1',

答案 3 :(得分:0)

next_lesson` VARCHAR NOT NULL DEFAULT -1,

应改为

`next_lesson` VARCHAR(255) NOT NULL DEFAULT -1,