0

新しい列を追加して値を挿入するテーブルを変更するトリガーを作成しています。

私のコードはlykdisに見えます:

 delimiter |

 CREATE TRIGGER addfield AFTER INSERT ON `entity_group_mapping`
 FOR EACH ROW BEGIN
     ALTER TABLE user_access ADD NEW.type_name INT(2) NOT NULL;
 END;

 |
 delimiter ;

それは私にエラーを与えています:#1103 - Incorrect table name 'NEW'

4

3 に答える 3

2

ドキュメントから:

テーブルごとに4096列のハード制限があります...すべてのテーブル(ストレージエンジンに関係なく)の最大行サイズは65,535バイトです。

これらの制限に達することができますか?できない場合でも、デザインを考えて、新しいフィールドの代わりにレコードを追加することをお勧めします。次に、ピボットテーブルを試すことができます-行をフィールドに変換します。インターネットやもちろんstackoverflowには多くのピボットの例があります。

于 2012-08-03T06:59:34.440 に答える
1

せずにこれを試してくださいNEW.

 ALTER TABLE user_access ADD type_name INT(2) NOT NULL;
于 2012-08-03T06:09:01.897 に答える
1

ALTER TABLEまたはCREATE TABLE、MySqlのトリガー内では許可されていません。とにかくそれは動作しません。

于 2012-08-03T06:10:34.860 に答える