簡體   English   中英

mysql觸發器在單獨的表中插入字段

[英]mysql trigger insert field in separate table

當將記錄插入general ,我希望將regno復制到conf conf_regno中。

我計划使用AFTER INSERT觸發器來執行此操作,但是無法使其正常工作。 我的主機正在運行MySQL v 5.5

這是我的觸發器-在phpMYadmin中出錯:

DELIMITER $$
DROP TRIGGER IF EXISTS sharonb9_titles.ins_regno;
CREATE TRIGGER ins_regno AFTER INSERT ON general
  FOR EACH ROW
  BEGIN
    INSERT INTO conf(conf_regno) VALUES(NEW.regno);
    END;
$$
DELIMITER;

表:

CREATE TABLE general (
id INT(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
regno VARCHAR(20) NOT NULL,
owner VARCHAR(50) NOT NULL,
dog VARCHAR(50) NOT NULL);

CREATE TABLE conf (
id INT(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
conf_regno VARCHAR(20) NOT NULL,
conf_CH_Y VARCHAR(4) NOT NULL DEFAULT 'xxxx',
conf_CH_V INT(2) UNSIGNED  NOT NULL DEFAULT 0,
conf_GCH_Y VARCHAR(4) NOT NULL DEFAULT 'xxxx',
conf_SN_Y VARCHAR(4) NOT NULL DEFAULT 'xxxx',
conf_SN_V INT(2) UNSIGNED  NOT NULL DEFAULT 0);

有人可以幫忙嗎?

您將定界符設置為$$但隨后使用;執行DROP TRIGGER命令; 在末尾。

無論如何,只要使用一條語句,您就可以跳過所有DELIMITERBEGIN / END

CREATE TRIGGER ins_regno AFTER INSERT ON general
  FOR EACH ROW INSERT INTO conf(conf_regno) VALUES(NEW.regno);

http://sqlfiddle.com/#!9/4c77ee/1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM