2017-04-26 10 views
0

私は2つの列AとBを持つsql dbを持っています。ここでAはオートインクリメントです。 Hibernateを使用してエントリが挿入されるたびに、カラムCを自動入力する方法はありますか?列Cは、BとAの値の連結、すなわちB_A?2列に基づくMySqlのオートフィル列

+2

'1つの情報を2回 – Jens

+0

を保存することは良い考えではありません'a、b、concat(a、b)ab ... 'のようにビューvを作成します。 – jarlh

答えて

1

挿入の値を変更できるBEFORE INSERT TRIGGER(https://www.techonthenet.com/mysql/triggers/before_insert.php)を使用できます。

CREATE TRIGGER addRow BEFORE INSERT ON table 
FOR EACH ROW 
    BEGIN 
     SET new.C = concat(new.a, '_', new.b); 
    END 

編集: あなたが使用して自動インクリメント値を取得することができます

DECLARE next_id INT; 
    SET next_id = (SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='tbl'); 
    SET NEW.field=next_id; 
+0

自動インクリメントフィールドは、その値の代わりに0を返します。 – 250

0

クエリ以下の使用:

SELECT CONCAT(char_col,'_',CAST(int_col AS CHAR)); 
関連する問題