2016-11-28 87 views
0

我只是試圖創建一個基於file.sql我對這個生成一個新的數據庫:的Mysql#1064 - 對一個varchar字段語法錯誤

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

所以我就點擊保存,比生成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,文本,int和日期我有,現在我得到這個問題:

#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?

+0

的錯誤是在MySQL的報告問題的確切點,之後'\'Cl_name \'VARCHAR'。你從不設置列大小! –

+1

默認爲'NULL'字符串而不是NULL ...但是爲什麼默認爲null,默認情況下NULL是默認的。在整數字段上默認爲字符串'0'似乎也是錯誤的。 :P – xQbert

+0

我這樣做是因爲我雖然有義務在完成數據庫後提供這些信息,但現在它是空的。找到正確的做事方式非常困難,很多信息x) –

回答

0

問題是沒有你的varchar列有大小規定爲每您發佈的代碼Cl_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',