2017-10-17 29 views
0

我在遇到以下SQL查詢時遇到了問題。當我指定tinyint作爲其數據類型時,狀態字段中會出現錯誤。我使用錯誤的語法嗎?在MySQL 5.5.57中使用tinyint作爲數據類型

查詢

create table device_master( 
id INT, 
serial_number VARCHAR, 
status TINYINT, 
created_at DATETIME, 
updated_at TIMESTAMP ON UPDATE CURRENT TIMESTAMP, 
created_by INT, 
updated_by INT, primary key(id)); 

錯誤

ERROR 1064(42000):你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本在1號線

+0

不要使用'mysql'問題'SQL-server'標籤。 –

+0

哎呀.. !!對不起這是我的錯..!! – rahul1205

回答

0

實際上有兩種語法錯誤

  1. 您必須指定的VARCHAR例如最大長度VARCHAR(255)
  2. ON UPDATE CURRENT_TIMESTAMP(注意_)

嘗試運行:

create table device_master( 
    id INT, 
    serial_number VARCHAR(255), 
    status TINYINT, 
    created_at DATETIME, 
    updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    created_by INT, 
    updated_by INT, 
    primary key(id) 
); 
+0

工作就像一個魅力..!謝謝 – rahul1205

1

使用近「狀態TINYINT,created_at DATETIME,TIMESTAMP的updated_at ON UPDATE CURRENT TIM」正確的語法手冊,我認爲不是TINYINT是你的問題。您必須聲明VARCHAR的長度爲SERIAL_NUMBER:

create table device_master( 
id INT, 
serial_number VARCHAR(100), 
status TINYINT, 
created_at DATETIME, 
updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
created_by INT, 
updated_by INT, primary key(id)); 
1

沒有,問題是,你沒有爲serial_number字段中指定的長度。它應該被定義爲serial_number VARCHAR(N),,其中N是字符的最大長度。

注意,在語法錯誤信息的代碼摘錄字status之前開始,指示錯誤被指定的tinyint數據類型之前發生的方式。

相關問題