1

ソフトウェア プログラムの更新 mysql ステートメントを作成しようとしています。現在、これは私がステートメントのために持っているものですが、複数の列を追加して更新する方法は今はわかりません。

このコードは現在、列が存在するかどうかにかかわらず、列を追加します。


/*delimiter '//'
CREATE PROCEDURE addcol() BEGIN
IF NOT EXISTS(
SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME=`top_status` AND TABLE_NAME='categories'
)
THEN
ALTER TABLE `categories`
ADD COLUMN `top_status` tinyint(1) NOT NULL default '1';
END IF;
END;
delimiter ';'
CALL addcol();
DROP PROCEDURE addcol;*/

このようなものを機能させるための正しいステートメントを誰かが私に提供できますか...つまり。WHERE COLUMN_NAME = 列 1、列 2 など。

私はあらゆる種類のバリエーションを試しましたが、上記以外のすべてが phpmyadmin でエラーを返します。

4

2 に答える 2

6

複数の列をテーブルに追加するには、ALTER TABLE ステートメントを使用します。

ALTER TABLE TableName
ADD (column1 col_definition,
column2 col_definition,
column3 col_definition,
....      ......
....      ......
columnN col_definition);
于 2013-03-06T08:28:47.143 に答える
0

確かに、新しい列の存在を個別にテストし、まだ存在しない場合は各列を個別に追加しますか?

列column1、column2などのいずれかINFORMATION_SCHEMAの存在をクエリでテストする場合は、ステートメントを使用できます。それらがすべて存在するかどうかをテストする場合は、結果セットが空かどうかをチェックする代わりに、を選択して、返されるカウントが期待される数(関係する列の数)であるかどうかをチェックできます。ININCOUNT(*)

于 2011-10-14T23:46:56.517 に答える