2016-11-09 43 views
0

整個錯誤代碼說:MYSQL:錯誤1064(42000)MariaDB的服務器進行正確的語法使用近「NOT NULL」

第1行

錯誤1064(42000):你在你的SQL語法錯誤;檢查對應於您MariaDB的服務器版本的手冊正確的語法使用近「NOT NULL」

它告訴我,我沒有正確的語法,但這裏是我的代碼,我錯過了什麼:

CREATE TABLE CONTACTAPPTABLE 
(
MAId int unsigned NOT NULL AUTO_INCREMENT, 
MAName varchar(50) DEFAULT NOT NULL, 
MAEmail varchar(45) DEFAULT NOT NULL, 
MASMS varchar(15) DEFAULT NOT NULL, 
MAOpinion text DEFAULT NOT NULL, 
MAOtherPaperCompanies varchar(20) DEFAULT NOT NULL, 
MAStreetAddress varchar(20) DEFAULT NOT NULL, 
MAColor varchar(20) DEFAULT NOT NULL, 
MAZipCode varchar(20) DEFAULT NOT NULL, 
MAMailingType varchar(20) DEFAULT NOT NULL, 
MADT timestamp, 
PRIMARY KEY(MAId) 

)Engine=MyISAM AUTO_INCREMENT=1128 DEFAULT CHARSET=latin1; 
+0

您正在使用哪種RDBMS?我看到三個不同的標籤 – Hiten004

+0

如果我正在閱讀正確的問題,我認爲它是mysql。我的老師告訴我們使用類似他的代碼,他的寫法也是一樣的。 –

+0

此[SQL小提琴](http://sqlfiddle.com/#!9/6b859/1/0)編譯必須設置默認值的值,並且不能在文本數據類型上設置默認值。 – xQbert

回答

1

你需要指定一個默認值:

NOT NULL DEFAULT "abc" 

From the docs

列_definition:
        data_type [NOT NULL | NULL] [默認DEFAULT_VALUE]

編輯響應於xQbert

According to MariaDB's docs

MariaDB的開始與10.2.1
BLOB和TEXT列現在可具有默認值。

如果您正在運行瑪麗亞< 10.2.1,你不能在你的TEXT數據字段使用缺省值。

+0

另外,看起來,您不能在文本數據類型上設置默認值。 [SQL小提琴](http://sqlfiddle.com/#!9/6b859/1/0)編譯。將不會不刪除默認的文字。 – xQbert

+0

WilI必須改變我的語法嗎? –

+1

我現在沒有maria實例來測試,試試看:D @ xQbert看到我的編輯。通過Maria 10.2.1,TEXT接受默認值。 –

相關問題