How can I insert fields from a table with fields from that same table?

0

I am writing the example of what I want to do. I have a table in mysql in the following way

create table usuarios(
  id varchar(10) primary key not null,
  apellido1 varchar(20),
  apellido2 varchar(20),
  nombre1 varchar(20),
  nombre2 varchar(20),
  nombreusu CONCAT' (apellido1||' '||apellido2||' '||nombre1||'  '||nombre2)'
)

What I want is that at the moment of inserting data automatically the cocaten data remain in the field nombreusu

    
asked by Alfred 19.11.2017 в 02:25
source

1 answer

1

TO DO THERE THE TRIGGER EXIST, WHAT YOU SHOULD DO IS TO MAKE A TRIGGER BEFORE INSERT (BEFORE INSERTING) WHAT WE WILL DO IS ASSIGNING THE VALUE TO THE FIELD nombreusu THE RESULT OF CHANGE THE PARAMETERS USING NEW WHAT IS THE PSEUDO-REGISTRY THAT WE CAN ALLOW TO OBTAIN THE NEW VALUES THAT ARE INSERTED.

THE TRIGGER WOULD REMAIN IN THE FOLLOWING WAY:

CREATE TRIGGER user_before_insert
BEFORE INSERT ON usuarios
FOR EACH ROW
BEGIN
   SET NEW.nombreusu = CONCAT(NEW.apellido1, NEW.apellido2, NEW.nombre1, NEW.nombre2, NEW.nombreusu);
END;

WE NOW MAKE AN INSERT TO THE TABLE:

INSERT INTO usuarios(id,apellido1,apellido2,nombre1,nombre2,nombreusu)VALUES (7,'AAA','BBB','CCC','DDD','')

WE NOW MAKE A SELECT TO THE TABLE:

SELECT * FROM usuarios;

THE RESULT IS THE FOLLOWING:

  

1 | AAA | BBB | CCC | DDD | AAABBBCCCDDD

NOTE: FOR IT TO FUNCTION CORRECTLY YOU MUST ASSIGN A VALUE FOR THE FIELD nombreusu AT THE TIME OF DOING THE INSERT INTO AS THE EXAMPLE UP YOU ARE ASSIGNED '', IF YOU DO NOT HAVE NO VALUE WILL BE KEPT LIKE (NULL).

GREETINGS!

    
answered by 19.11.2017 в 06:35