我有一张这样的表:
W/IPA-Native-W: data received from IPA is NULL! is it ok?
D/IpaCoreSdkAdapter: ipaMessageEventType= START_RECO
E/android.media.AudioRecord: User permission denied!
D/IpaAndroidAudioManagerFacade: startRecording AudioRecord
D/IPA-Native-I: [IPAStateKeyword::onEntry] publish PLAY_BEEP
W/IPA-Native-W: data received from IPA is NULL! is it ok?
D/IpaCoreSdkAdapter: ipaMessageEventType= PLAY_BEEP
D/IpaAndroidAudioManagerFacade: VOLUME play start + originalVolume=12
D/IpaAndroidAudioManagerFacade: VOLUME play start + streamVolume=7
I/AudioTrack: Skip ramp
D/IpaAndroidAudioManagerFacade: VOLUME play end + originalVolume=12
D/IpaAndroidAudioManagerFacade: VOLUME play end + streamVolume=12
D/IntentGenerator: sendK2KnobIntent patype->5 state-> 1
D/IntentGenerator: Complete sendK2KnobIntent patype->5 state-> 1
D/IPA-Native-I: [IPAStateKeyword::onEntry] Generating internal event...
我希望CREATE TABLE Car
(
CarID INT NOT NULL AUTO_INCREMENT ,
CarBrand VARCHAR(20) NOT NULL ,
InsuranceNumber INT NOT NULL ,
PRIMARY KEY (CarID))AUTO_INCREMENT=1;
自动增加,就像InsuranceNumber
一样
我知道同时不能有2个自动增加的列,但我做了一些研究,发现我可以通过创建一个
CarID
。我确实尝试了自己,但我无法做到我想做的事。
我确实尝试过这样的事情:
trigger
但是我收到语法错误。我该怎么办?
答案 0 :(得分:0)
您询问的问题是触发器代码中的语法错误。
解决方案是使用特殊关键字NEW
而不是表名。
CREATE TRIGGER car_trigger AFTER INSERT ON Car
FOR EACH ROW UPDATE Car SET NEW.CarID = NEW.InsuranceNumber
但是如果您尝试将一个自动增量列复制到另一个,那么您应该知道这不会起作用,因为您无法更改NEW.*
列的值一个AFTER
触发器。该行已被插入,更改值的时间已经太晚了。
但是在BEFORE
触发器中,尚未生成自动增量值,并且自动增量列仍为NULL。
制作等同于"两个自动增量列的唯一方法"是生成不使用AUTO_INCREMENT
但使用其他机制的自动值,因此您可以在执行SQL语句时为该行提供值。