我有一個表,其中我有一個ID
列(主鍵自動增量)和一個名稱列。計算字段值基於其他列插入
我想自動填寫名稱列的值,而根據生成的ID列值在格式插入
<IDColumnValue>_School
我知道的兩種方法可以做到這一點使用
- 觸發
- 首先插入行,然後基於插入的行ID列值更新其列值
但實際上我想使該字段不可爲空,但要使用第二個選項,我必須使其可以爲空。
在插入行時有沒有任何直接的方法可以使字段不可爲空?
我有一個表,其中我有一個ID
列(主鍵自動增量)和一個名稱列。計算字段值基於其他列插入
我想自動填寫名稱列的值,而根據生成的ID列值在格式插入
<IDColumnValue>_School
我知道的兩種方法可以做到這一點使用
但實際上我想使該字段不可爲空,但要使用第二個選項,我必須使其可以爲空。
在插入行時有沒有任何直接的方法可以使字段不可爲空?
正如我在評論中所說的,您可以使用name
列的臨時值。你可以使用像一個請求:
INSERT INTO `table` VALUES('', 'name') /*let's assume name is the real name you want to insert*/
我不知道那麼如何使用觸發器,但你可能想要寫的東西是這樣的:
delimiter #
CREATE TRIGGER update_name_after_insert INSERT ON `table`
for each row
begin
update `table` set name = CONCAT_WS("_", id, name)
end#
它的火鳥工作,但我認爲,它must work in MySQL因爲MySQL有new/old
運營商。對於表XYZ的Bellow觸發器具有字段B和C(非空)。
CREATE OR ALTER trigger xyz_bi0 for xyz
active before insert position 0
AS
begin
new.c=new.b||' some text';--this construction must work in MySQL
end
爲什麼不簡單地用一個奇特值填充它,然後更新它呢? –
爲什麼你不想使用觸發器& –
@MichaelKazarian - 觸發器可以在被插入後立即更新插入的行名稱列 –