2017-06-19 171 views
0

當執行一個SQL腳本,我遇到這個錯誤:錯誤1064(42000) - 您在SQL語法中有錯誤;檢查對應於您MariaDB的服務器版本正確的語法手冊

ERROR 1064(42000) - 您可以在您的SQL語法有錯誤;檢查對應於您的MariaDB服務器版本的手冊,以便在第7行使用接近'rows int(12)NOT NULL默認值'600',時間範圍int(12)無符號NOT NULL defaul'的接近正確語法

代碼對於創建是:

CREATE TABLE rra (
    id mediumint(8) unsigned NOT NULL auto_increment, 
    hash varchar(32) NOT NULL default '', 
    name varchar(100) NOT NULL default '', 
    x_files_factor double NOT NULL default '0.1', 
    steps mediumint(8) default '1', 
    rows int(12) NOT NULL default '600', 
    timespan int(12) unsigned NOT NULL default '0', 
    PRIMARY KEY (id) 
) ENGINE=MyISAM; 

我不明白在語法中出了什麼問題。 任何幫助將不勝感激!

+0

可能需要傳遞整數/小數,而不是那些類型的字符串(int,double)。刪除600. –

+0

刪除字段中的單引號,直到找到哪個問題導致您的問題 –

+3

我找到了它:行是MariaDB中的保留字https://mariadb.com/kb/en/mariadb/reserved-words/使用不同的列名(numrows或其他) –

回答

0

該解決方案的問題是腳本全部失敗。 SQL正在查找表格「行」。

0

刪除數字字段上的默認值的引號並重命名列的行。行是保留字。

CREATE TABLE rra (
    id mediumint(8) unsigned NOT NULL auto_increment, 
    hash varchar(32) NOT NULL default '', 
    name varchar(100) NOT NULL default '', 
    x_files_factor double NOT NULL default 0.1, 
    steps mediumint(8) default 1, 
    rra_rows int(12) NOT NULL default 600, -- rows is a reserved word 
    timespan int(12) unsigned NOT NULL default 0, 
    PRIMARY KEY (id) 
) ENGINE=MyISAM; 
相關問題