2017-10-17 16 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構文でエラーが発生しています。ライン1

+0

は 'mysql'の質問のための'のsql-server'タグを使用しないでください。 –

+0

おっと!申し訳ありません、私の悪い..! – rahul1205

答えて

0

あなたがvarchar型などの最大長を指定する必要が2つの構文エラー

  1. が実際にあります。 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

に近い「UPDATE CURRENT TIM ON TIMESTAMP updated_atのステータスTINYINT、created_atとDATETIMEを、」使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルをチェックし、私はないtinyint型が問題だと思います。

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フィールドの長さを指定していないということです:あなたは、シリアル値のためにvarchar型の長さを宣言する必要があります。 serial_number VARCHAR(N),と定義する必要があります.Nは最大文字数です。 tinyintデータ型が指定される前に、構文エラーメッセージのコードの抜粋は、エラーを示す、ワードstatusを開始すること

注意、方法が起こりました。

関連する問題