以下是我的表模式:使用多線兩列組合成一個觸發器在MySQL
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| LicenceID | int(11) | NO | PRI | NULL | |
| PassingRTO | varchar(4) | NO | | NULL | |
| DLNO | int(15) | YES | | NULL | |
| DateOfIssue | date | NO | | NULL | |
| DateOfExpiry | date | NO | | NULL | |
| COV | varchar(6) | NO | | NULL | |
| DateOfBirth | date | NO | | NULL | |
| BloodGroup | varchar(3) | YES | | NULL | |
| FullName | varchar(50) | NO | | NULL | |
| FathersName | varchar(50) | YES | | NULL | |
| Address | varchar(150) | NO | | NULL | |
| PinCode | int(6) | NO | | NULL | |
| IssuingAuth | int(7) | NO | | NULL | |
| IDIA | int(11) | YES | | NULL | |
| Valid | tinyint(4) | NO | | NULL | |
+--------------+--------------+------+-----+---------+-------+
什麼我想要做的是,當我插入新行,我希望我的DLNO作爲PassingRTO + LicenceID和IDIA作爲PassingRTO + IssuingAuth。
我嘗試使用相同的 -
create trigger insert_combined
after insert on LicencesDB
for each row
BEGIN
set new.IDIA = concat(new.PassingRTO, new.IssuingAuth);
set new.DLNO = concat(new.PassingRTO,new.LicenceID);
END;
,但給了我一個錯誤 -
ERROR 1362(HY000):新行的更新是不允許在後 觸發ERROR 1193( HY000):未知的系統變量「DLNO」錯誤1064 (42000):您的SQL語法有錯誤;檢查手冊中 對應於你的MySQL服務器版本正確的語法在行使用 附近「END」 1
現在我有兩個問題,我們可以做這個觸發器使用多行?我們不能在創建表本身時組合兩列嗎?像col1 = col2 + col3?
在此先感謝!
對不起,我對分隔符沒有任何意見,請您解釋一下嗎? – Shashank 2013-04-22 09:33:13
對不起我的壞..忘了改變列的dataType!現在工作好了! :) – Shashank 2013-04-22 10:46:50