0

mytable列「auto」に存在するかどうかを確認し、存在しない場合は追加します。これをそうする:

  mysql-> SHOW COLUMNS FROM mytable 

その後、PHPでチェックすると、結果が「自動」であるかどうかを確認し、存在しない場合は次のようにします。

  mysql-> ALTER TABLE mytable  ADD auto  VARCHAR (30) NOT NULL COLLATE utf8_general_ci 

質問:1つのクエリでこれを作成する方法を教えてください。

4

2 に答える 2

1

ストアドプロシージャで次のクエリを定義し、ストアドプロシージャを呼び出して、列が存在しない場合は追加することができます。

IF NOT EXISTS(
    SELECT * FROM information_schema.COLUMNS
    WHERE COLUMN_NAME='auto' AND TABLE_NAME='my_table' AND TABLE_SCHEMA='the_schema'
    )
    THEN
        ALTER TABLE `the_schema`.`my_table`
        ADD COLUMN `auto` VARCHAR (30) NOT NULL COLLATE utf8_general_ci ;

END IF;
于 2012-07-31T10:14:10.960 に答える
1

最初のクエリをスキップして、追加してみてください。すでに存在する場合は失敗し、欠落している場合は追加されます。

于 2012-07-31T10:04:27.283 に答える