Tengo una tabla con un incremento automático de IDENTIFICACIÓN de campo como se muestra a continuación.

+------------+-------------------------------------+ 
| company_id | nombre | 
+------------+-------------------------------------+ 
| 1 | Internacional | Cliente 
| 2 | Oracle | 
| 3 | test | 
| 4 | testabc | 
| 5 | testdef | 
| 6 | abcd | 
+------------+-------------------------------------+ 

Quiero actualizar a la columna de ID de ser un GUID utilizando el

uuid()

función.

Además, ¿cómo puedo actualizar la clave externa hace referencia a la correcta GUID?

2 Comentarios

  1. 7

    Uso de desencadenadores.

    CREATE TABLE `tbl_test` (
      `GUID` char(40) NOT NULL,
      `Name` varchar(50) NOT NULL,
      PRIMARY KEY (`GUID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    mesa y pk, ahora gatillo..

    DELIMITER //
    CREATE TRIGGER `t_GUID` BEFORE INSERT ON `tbl_test`
     FOR EACH ROW begin
     SET new.GUID = uuid();
    end//
    DELIMITER ;

    Ahora intenta,

    insert into tbl_test(Name) value('trigger happy...');

    saludos,
    /t

    • Que está bien. Pero hay tablas con GUID como clave externa. ¿Cómo puedo actualizar los que como el maestro de la tabla se actualiza?
    • (tabla maestra = PK?) ¿por qué cambiar el PK una vez establecido?
    • Si desea agregar una función de marca de fecha/hora de creación de los datos», esto funcionó a añadir esta línea después de que el GUID de la línea: Created timestamp not NULL DEFAULT CURRENT_TIMESTAMP,
  2. 3

    no se puede utilizar con autoincrement

    guid es de tipo char no intger

    debes insertar tu auto

    también será necesario cambiar el id de tipo char(40)

    insert into table_name (id,name) values (uuid(),'jon');

Dejar respuesta

Please enter your comment!
Please enter your name here