2016-12-26 3 views
0

私は、次のSQLコマンドを持っている:私のSQLエラー

ALTER TABLE `personal_information` ADD `applicant_name` VARCHAR(50) NOT NULL AFTER `ID`, ADD `mothers_name` VARCHAR(50) NOT NULL AFTER `applicant_name`, ADD `date_of_birth` DATE NOT NULL AFTER `mothers_name`, ADD `Place_of_birth` VARCHAR(200) NOT NULL AFTER `date_of_birth`, ADD `marital_status` ENUM(0) NOT NULL AFTER `Place_of_birth`, ADD `sex` ENUM(0) NOT NULL AFTER `marital_status`, ADD `religion` ENUM(0) NOT NULL AFTER `sex`, ADD `profession_ar` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER `religion`, ADD `profession` VARCHAR(50) NOT NULL AFTER ` profession_ar`; 

これは新しいテーブルです。 ID(PRIMARY KEY)列のみがあります。私は完全にバックエンドに新しいです。だから私はSQLコマンドについて何も知らない。私はPHPの私の管理者プレビューSQLのbtnからこれを得た。これによりエラーが発生します。エラーは次のとおりです。

ALTER TABLE `personal_information` ADD `applicant_name` VARCHAR(50) NOT NULL AFTER `ID`, ADD `mothers_name` VARCHAR(50) NOT NULL AFTER `applicant_name`, ADD `date_of_birth` DATE NOT NULL AFTER `mothers_name`, ADD `Place_of_birth` VARCHAR(200) NOT NULL AFTER `date_of_birth`, ADD `marital_status` ENUM(0) NOT NULL AFTER `Place_of_birth`, ADD `sex` ENUM(0) NOT NULL AFTER `marital_status`, ADD `religion` ENUM(0) NOT NULL AFTER `sex`, ADD `profession_ar` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER `religion`, ADD `profession` VARCHAR(50) NOT NULL AFTER ` profession_ar` 

MySQLは言った:ドキュメント

#1064 - あなたのSQL構文でエラーが発生しています。近くで使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルをチェック 'Place_of_birth後0)、NOT NULLを、sex ENUMを追加する(0)、NOT NULL、 `marital_st AFTER' 行1

で私はWAMPを使用していますが、私のSQLバージョンは5.7.14です。私に何ができる?

編集:

回答はありませんでした。ため、私のphpmyadminバージョンは4.6.4でした。これは最新のMySQLのEnum構文をサポートしていません。しかし、私のmysqlサーバのバージョンは5.7.14です。したがって、古い列挙型の構文はサポートされていません。MySQL 5.7.14(サポートされているかもしれませんが、MySQL 5.7.14とphpmyadmin 4.6.4を一緒に使用していました。そこでphpmyadminをバージョン4.6.5.2にアップデートして、すべてが完璧に動作しています。

私に答えを与えてくれてありがとう。私は一度私は15の評判を得る上の票を与えるでしょう。

答えて

0

あなたのクエリは次のようにする必要があります:

ALTER TABLE `personal_information` ADD `applicant_name` VARCHAR(50) NOT NULL AFTER `ID`, ADD `mothers_name` VARCHAR(50) NOT NULL AFTER `applicant_name`, ADD `date_of_birth` DATE NOT NULL AFTER `mothers_name`, ADD `Place_of_birth` VARCHAR(200) NOT NULL AFTER `date_of_birth`, ADD `marital_status` ENUM('0') NOT NULL AFTER `Place_of_birth`, ADD `sex` ENUM('0') NOT NULL AFTER `marital_status`, ADD `religion` ENUM('0') NOT NULL AFTER `sex`, ADD `profession_ar` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER `religion`, ADD `profession` VARCHAR(50) NOT NULL AFTER `profession_ar`; 

あなたがENUM

編集宣言するために、単一引用符で値を渡す必要があります: 別のエラーが発生しているため、最後のprofession_ar上のギャップがあるが。

0

次のようなENUMのオプション明記してください: は、Place_of_birth AFTER をmarital_status ENUM( 'シングル'、 '結婚')NOT NULLを追加...

を...

0

にです非常に単純です。mysqlエディタで以下のクエリを実行するだけです。しかし、データベースを選択することを忘れないでください。あなたはこれに関するさらなるクエリをお持ちの場合は、私をノック私を感じることができます。間違いに気づいてください。ありがとうenter image description here

ALTER TABLE personal_information 
ADD COLUMN `applicant_name` VARCHAR(50) NOT NULL AFTER `id`, 
ADD COLUMN `mothers_name` VARCHAR(50) NOT NULL AFTER `applicant_name`, 
ADD COLUMN `date_of_birth` DATE NOT NULL AFTER `mothers_name`, 
ADD COLUMN `Place_of_birth` VARCHAR(200) NOT NULL AFTER `date_of_birth`, 
ADD COLUMN `sex` enum('1','2') NOT NULL COMMENT '1=M,2=F' AFTER `Place_of_birth`, 
ADD COLUMN `religion` ENUM('0','2') NOT NULL AFTER `sex`, 
ADD COLUMN `profession_ar` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER `religion`, 
ADD COLUMN `profession` VARCHAR(50) NOT NULL AFTER `profession_ar`;