2017-09-21 17 views
1

私はいくつかのSQL文を書きました。私はそれらをテストするようになったので、私は次のエラーで迎えました。なぜそれを拒否しているのですか?phpMyAdminを使用している間にSQL#1064

CREATE TABLE Student 
(stud_id INT unsigned NOT NULL, 
stud_name VARCHAR NOT NULL, 
stud_phone INT(10) unsigned NOT NULL, 
stud_date_of_birth DATE NOT NULL, 
stud_city VARCHAR NOT NULL, 
stud_address VARCHAR NOT NULL, 
stud_postcode INT(4) unsigned NOT NULL, 
PRIMARY KEY (stud_id, stud_phone) 
); 

#1064 - あなたはあなたのSQL構文でエラーが発生しています。近くに使用する権利構文については、ご使用のMariaDBサーバーのバージョンに対応するマニュアルをチェック「NOT NULLで、 stud_phoneのINTを(10)符号なしNOT、 stud_date_of_birthのDATE NOT NULL」行3

+2

あなたは 'VARCHAR(256)'と同様、 'VARCHAR'の列定義のそれぞれに長さを追加する必要があります。 –

+0

INTは、電話番号にとって最良の選択肢ではないかもしれません。下記も参照してくださいhttps://stackoverflow.com/questions/24353778/which-is-best-data-type-for-phone-number-in-mysql-and-what-should-java-type-mapp –

答えて

2

であなたは指定する必要があります長さはVARCHARデータ型のVARCHAR(100)です。 これは唯一のものです。

変更されたクエリは次のようになります。

CREATE TABLE Student 
(stud_id INT unsigned NOT NULL, 
stud_name VARCHAR(100) NOT NULL, 
stud_phone INT(10) unsigned NOT NULL, 
stud_date_of_birth DATE NOT NULL, 
stud_city VARCHAR(100) NOT NULL, 
stud_address VARCHAR(100) NOT NULL, 
stud_postcode INT(4) unsigned NOT NULL, 
PRIMARY KEY (stud_id, stud_phone) 
); 

は、補正後このエラーがまだあなたのphpMyAdminに示す場合は、あなたが提出されたクエリの下であなたのphpMyAdminの場所に区切りテキストボックスからDelimiterを削除する必要があります。

enter image description here

+0

このクエリは実行されますか?首尾よく? –

+1

はい!私のためにそれを明確にしてくれてありがとう –

関連する問題