2016-10-18 17 views
1

mysqliクエリを作成しようとすると、特定の方法でパラメータを順序付けしないと失敗します。MySQLクエリでテーブルパラメータの順序が重要なのですか?

//Example that causes error (focus on order of AUTO_INCREMENT and UNSIGNED) 

<?php 
$con = new mysqli("localhost", "user", "pass", "db"); 

$query = "CREATE TABLE colors (
id INT(2) AUTO_INCREMENT UNSIGNED PRIMARY KEY, 
color1 varchar(20) NOT NULL, 
color2 varchar(20) NOT NULL 
)"; 

$con->query($query); 
?> 

しかし、AUTO_INCREMENTUNSIGNEDスイッチの場所、クエリが成功しています。 PRIMARY KEYパラメータが最後にリストされたパラメータでない場合、同じことが起こりそうです。秩序は重要か?

+0

これらは私が正確に「パラメータ」と呼んでいるものではありません。しかし、はい、ほとんどの場合、彼らに期待される秩序があります。 [here](http://dev.mysql.com/doc/refman/5.7/en/create-table.html)にあります。 – Uueerdo

+0

元の質問を解決する場合は、上/下の三角形の下のチェックマークをクリックして回答を受け入れてください、ありがとうございます。 – Clay

答えて

1

はい、CREATE TABLE構文についてはMySQLのドキュメントをご覧ください。 http://dev.mysql.com/doc/refman/5.7/en/create-table.html

column_definitionのための具体このセクション:

column_definition: 
    data_type [NOT NULL | NULL] [DEFAULT default_value] 
     [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] 
     [COMMENT 'string'] 
     [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}] 
     [STORAGE {DISK|MEMORY|DEFAULT}] 
     [reference_definition] 
    | data_type [GENERATED ALWAYS] AS (expression) 
     [VIRTUAL | STORED] [UNIQUE [KEY]] [COMMENT comment] 
     [NOT NULL | NULL] [[PRIMARY] KEY] 

形式と順序が重要に。マニュアルは、パラメータの正しい順序を決定するのに役立ちます。

関連する問題