2015-03-02 58 views
1

我想在mySQL控制檯上創建一個表。MySQL表添加雙值

CREATE TABLE TRY (Essn int(10), Pno int(2), Hours DOUBLE(40,0)); 

當我嘗試添加一些表:

INSERT INTO TRY ('123456789','1','32,5'); 

我得到的語法錯誤。我找不到問題。誰能幫忙?

+0

更改'32,5'到'32.5' – 2015-03-02 16:16:16

+0

@AhhikChakraborty我也試過了,我得到了同樣的錯誤。 – berkc 2015-03-02 16:17:12

+2

您缺少'VALUES'關鍵字。 – eggyal 2015-03-02 16:20:18

回答

2

擺脫報價,以32.5更換32,5,並添加VALUES關鍵字應該工作:

INSERT INTO TRY VALUES (123456789,1,32.5); 

你可能也想改變你的雙字段定義爲允許Hours更多的十進制數現場:

CREATE TABLE TRY (Essn int(10), Pno int(2), Hours DOUBLE(40,2)); 

指MySQL的approximate value部分獲取更多細節

「(M,D)」意思是總共可以存儲多達M位的數值,其中D位可能在小數點後面。例如,定義爲FLOAT(7,4)的 列在顯示時看起來像-999.9999。 MySQL在存儲值時執行四捨五入,所以如果將 999.00009插入到FLOAT(7,4)列中,則近似結果爲999.0001。

+0

我現在試過了,但我得到了同樣的錯誤。 – berkc 2015-03-02 16:19:00

+0

錯誤1064(42000)Erreur de syntaxe pres de'123456789,1,32.5)'a la ligne 1.我不知道爲什麼它在法文 – berkc 2015-03-02 16:20:44

+0

@Dosher我用'VALUES'關鍵字更新瞭解決方案 – 2015-03-02 16:23:40

0

在您的創作中,您定義了您不希望在小數點後保存任何數字。 DOUBLE(40,0)表示您有40位數字,小數點後面有0位數字。

另請參閱https://dev.mysql.com/doc/refman/5.6/en/floating-point-types.html瞭解更多信息。

+0

它應該沒問題,當插入一個值時,mysql會舍入小數點後0,例如,40.85自動變爲41 – 2015-03-02 16:27:09

+0

@ElMatze如果我使用DOUBLE(40,1),我會得到結果爲32.5? – berkc 2015-03-02 16:28:31