簡體   English   中英

對於以下查詢,出現#1064錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM