tipo dato mysql

dato - ¿Puedo usar una función para un valor predeterminado en MySql?



mysql default uuid (4)

Como ya dije, no puedes.

Si desea simular este comportamiento, puede utilizar un desencadenador de esta manera:

CREATE TRIGGER before_insert_app_users BEFORE INSERT ON app_users FOR EACH ROW IF new.uuid IS NULL THEN SET new.uuid = uuid(); END IF;

Aún debe actualizar las filas previamente existentes, como esta:

UPDATE app_users SET uuid = (SELECT uuid());

Quiero hacer algo como esto:

create table app_users ( app_user_id smallint(6) not null auto_increment primary key, api_key char(36) not null default uuid() );

Sin embargo, esto da como resultado un error, ¿hay alguna manera de llamar a una función para un valor predeterminado en mysql?

Gracias.


Creo que no puedes :

el valor predeterminado debe ser una constante; no puede ser una función o una expresión


Desafortunadamente no, MySQL 5 requiere constantes para el valor predeterminado. El problema se discutió con mucho más detalle en el siguiente enlace. Pero la única respuesta es permitir nulo y agregar un desencadenante de tabla.

MySQL solo aceptó UUID recientemente como parte de su paquete DB, y no es tan rico en funciones como nos gustaría.

http://www.phpbuilder.com/board/showthread.php?t=10349169


No, no puedes.

Sin embargo, puede crear fácilmente un disparador para hacer esto, como por ejemplo:

CREATE TRIGGER before_insert_app_users BEFORE INSERT ON app_users FOR EACH ROW SET new.api_key = uuid();