Mysql#1064 - varchar字段的语法错误

时间:2016-11-28 12:26:40

标签: mysql mysql-error-1064

我刚刚尝试根据我生成的file.sql创建一个新数据库:

http://ondras.zarovi.cz/sql/demo/?keyword=default

所以我点击了save,而不是生成sql,将它复制到记事本++中,保存的sql然后将其导入我的phpmyadmin新数据库。 (Mysql 5.7)

所以现在我的问题,我得到了1064错误。我在互联网上查了一下,我可以找到所有关于日期(时间戳)的答案,对我来说它看起来像是varchar之一。

以下是错误消息:

#1064 - Erreur de syntaxe près de 'NOT NULL DEFAULT 'NULL',

  `Cl_forename` VARCHAR NOT NULL DEFAULT 'NULL',

  `C' à la ligne 4

这是我的file.sql的第一部分

CREATE TABLE `Clients` (

  `id_client` INTEGER NULL AUTO_INCREMENT DEFAULT NULL,

  `Cl_num_member` SMALLINT NOT NULL DEFAULT '0',

  `Cl_name` VARCHAR NOT NULL DEFAULT 'NULL',

  `Cl_forename` VARCHAR NOT NULL DEFAULT 'NULL',

  `Cl_nickname` VARCHAR NOT NULL DEFAULT 'NULL',

  `Cl_geolocation` MEDIUMTEXT NULL DEFAULT NULL,

  `Cl_date_license_start` DATE NULL DEFAULT NULL,

  `Cl_date_license_stop` DATE NULL DEFAULT NULL,

  `Cl_special_requirement` MEDIUMTEXT NULL DEFAULT NULL,

这只是第一张桌子的一半。正如您所看到的那样,您可以看到的第一条线就是“''然后没有',我测试了多种可能性,看看是否有一个解决方案,但我不知道哪个是最好的。 (或者哪一个实际上可以工作)

任何帮助将不胜感激..

编辑:

我为所有varchar,text,int和date添加了值,现在我遇到了这个问题:

#1067 - default value invalide for 'Cl_num_member'

这是代码中的一行:

`Cl_num_member` SMALLINT(11) NOT NULL DEFAULT NULL,

我在一个网站上看到,对于int,你需要精确(11)只是为了表示它的数字,但是价值并不重要,是吗?因为它看起来不是。

这里是帖子的链接: What is the size of column of int(11) in mysql in bytes?

1 个答案:

答案 0 :(得分:0)

问题是,根据您发布的代码varcharCl_forename VARCHAR NOT NULL DEFAULT列的大小均未指定。这应该是Cl_forename VARCHAR(100) NOT NULL DEFAULT

  `Cl_name` VARCHAR NOT NULL DEFAULT 'NULL',

  `Cl_forename` VARCHAR NOT NULL DEFAULT 'NULL',

  `Cl_nickname` VARCHAR NOT NULL DEFAULT 'NULL',