[英]Getting #1064 error for below query?
CREATE TABLE IF NOT EXISTS `pset7`.`portfolio`(
`id` int(10) unsigned NOT NULL,
`symbol` varchar(12) NOT NULL,
`shares` double(50) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=InnoDB;
這是錯誤:
錯誤:#1064-您的SQL語法有錯誤; 檢查與您的MySQL服務器版本相對應的手冊以在')NOT NULL,PRIMARY KEY>(
id
)ENGINE = InnoDB AUTO_INCREMENT = 8'附近使用正確的語法
我沒有得到什么語法錯誤,我檢查了SQL校正器?
MySQL版本-5.5.35-0ubuntu0.13.10.2
DOULE
需要兩個參數
`shares` DOUBLE(M,D) NOT NULL
D是小數點后的位數,M是位數的總數。 有關更多信息,請查看此 。
當然你也可以用這個
`shares` DOUBLE NOT NULL
指示sql引擎采用默認值。
MySQL permits a nonstandard syntax:
FLOAT(M,D) or REAL(M,D) or DOUBLE PRECISION(M,D)
。 在此,“ (M,D)
”表示總共可以存儲多達M位的值,其中D位可以在小數點后。 例如,顯示為FLOAT(7,4)
的列看起來像-999.9999
。 MySQL
在存儲值時執行四舍五入,因此,如果將999.00009
插入FLOAT(7,4)
列,則近似結果為999.0001
所以嘗試
CREATE TABLE `portfolio` (
`id` int(10) NOT NULL,
`symbol` varchar(12) DEFAULT NULL,
`shares` double(10,5) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
參考: http : //dev.mysql.com/doc/refman/5.6/en/floating-point-types.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.