CREATE DATABASE Ebooks;
CREATE TABLE Usuario (
Email VARCHAR (320) PRIMARY KEY,
NombreUsuario VARCHAR (70),
Contrasena VARCHAR (20),
Nombre VARCHAR (30),
Apellido VARCHAR (30),
IdDireccion INT,
FechaNac DATE,
Sexo VARCHAR (1),
Celular BIGINT,
IdPreferencias INT,
IdTarjeta INT
);
CREATE TABLE Direccion (
IdDireccion INT PRIMARY KEY AUTO_INCREMENT,
CalleyNumero VARCHAR (120),
Colonia VARCHAR (30),
CP INT,
Ciudad VARCHAR (30),
Estado VARCHAR (20),
Pais VARCHAR (20)
);
我想创建一个AFTER INSERT ON Direccion Trigger,它允许我获取Direccion.IdDireccion值并将其插入Usuario.IdDireccion。
答案 0 :(得分:1)
在NEW
表上插入值后,您可以使用关键字Direccion
,例如:
DELIMITER //
CREATE TRIGGER trg_insert_usuario AFTER INSERT ON Direccion
FOR EACH ROW
BEGIN
INSERT INTO `Usuario`
VALUES('random', '1234', '1234', '6532', '12345', NEW.IdDireccion,
'123', '12', '1234', '124', '1234');
END //
DELIMITER ;
答案 1 :(得分:0)
请参阅20.3.1 Trigger Syntax and Examples以供参考。
你需要这样的东西:
CREATE TRIGGER ins_dir AFTER INSERT ON Direccion
FOR EACH ROW INSERT INTO Usuario SET IdDireccion=NEW.IdDireccion
虽然这会插入一个新行,其中除IdDireccion
之外的所有字段都为空,特别是Usuario
的主键也应包含在INSERT
语句中。
根据以下评论更新:
CREATE TRIGGER ins_dir AFTER INSERT ON Direccion
FOR EACH ROW UPDATE Usuario SET IdDireccion=NEW.IdDireccion WHERE Email=<THE EMAIL>