FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cómo Hago un Autoincremento en un trigger
Hola Todos.
Tengo el siguiente Trigger create trigger Actualizacion_Id Before Insert On Genero For EACH ROW Begin SET @Cont= (SELECT MAX(CODGENERO)+1 FROM GENERO); INSERT INTO GENERO (CODGENERO) VALUES (@Cont ); End; Lo que quiero es que al insertar un registro se me asigne automaticamente el consecutivo en el campo CODGENERO (es la llave). Me sale un error que dice que la variable es Nula. Agradezco si me colaboran |
#2
|
||||
|
||||
¿No te sirve un campo autoincremental?
__________________
Saludos Emilio |
#3
|
||||
|
||||
Aparte de lo dicho por Emilio, que tiene razón porque MySQL incluye campos autoincrementales, el error te lo da porque el evento se ejecuta antes (before) de que se haga la inserción, por lo que no puede acceder a los campos ya que todavía no existen.
De todas formas, repetimos, usa un campo autoincremental (auto_increment). Por ejemplo:
Para insertar sólo tienes que hacer:
|
#4
|
|||
|
|||
Si bien existe en mysql la opcion de Autoincrement, creo que se podria realizar mediante un trigger... Si alguien sigue esta idea.. aqui les muestro el codigo del trigger que realicé.
Código:
... DECLARE id int; BEGIN SELECT MAX(campo1) FROM tbl1 INTO id; IF (id>0) THEN SET NEW.campo1 = id + 1; ELSE SET NEW.campo1 = 1; END IF; END Bueno eso es el corazón del trigger.. ahora cuando realizo un ingreso mediante la consola el trigger funciona correctamente. Estoy utilizando delphi2007 con ZEOS 6.1 (si mal no recuerdo) con un mysql 5.. Cuando realizo el POST desde delphi es como que el trigger no se ejecuta.. Me sale un mensaje indicandome que no es posible insertar un valor nulo para el "campo1".. Si alguien sabe a que se debe o cual es la solucion les estaré agradecidos... Espero les sirva. Saludos Rikrdo.- |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Trigger en mysql como se hace?????? | david_uh | MySQL | 0 | 16-07-2007 23:13:40 |
como utilizo un campo con autoincremento. | aurbano | Tablas planas | 8 | 26-10-2005 11:25:51 |
Trigger como lo armo? | marceloalegre | SQL | 18 | 11-06-2005 20:11:57 |
Autoincremento | Alex2000 | Firebird e Interbase | 1 | 10-05-2005 18:22:42 |
Como obtener valor de Campo Autoincremento... | vic_ia | Firebird e Interbase | 5 | 10-05-2005 17:19:42 |
|