valor tipo son que por para los invalido defecto dato columna cambiar atributos mysql default default-value

tipo - mysql establece el valor predeterminado del campo en otra columna



valor por defecto datetime mysql (2)

Como se documenta en Valores predeterminados de tipo de datos :

La cláusula de DEFAULT value en una especificación de tipo de datos indica un valor predeterminado para una columna. Con una excepción, el valor predeterminado debe ser una constante; no puede ser una función o una expresión. Esto significa, por ejemplo, que no puede establecer el valor predeterminado para una columna de fecha como el valor de una función como NOW() o CURRENT_DATE . La excepción es que puede especificar CURRENT_TIMESTAMP como predeterminado para una columna TIMESTAMP . Consulte la Sección 11.3.5, “Inicialización y actualización automáticas de TIMESTAMP .

En su lugar, puede definir un disparador de inserción:

CREATE TRIGGER foo BEFORE INSERT ON TSM_TRANSACTION_TBL FOR EACH ROW IF NEW.REMAINING IS NULL THEN SET NEW.REMAINING := NEW.MAX_VALUE - NEW.BOOKED_UNITS; END IF;;

Cómo establecer el valor predeterminado para un campo a otra columna en Mysql Lo he hecho oracle con el campo virtual pero no sé cómo hacerlo en Mysql esta es mi tabla:

create table TSM_TRANSACTION_TBL ( TRANS_ID INT primary key auto_increment, LOCATION_ID INT, TRANS_DATE DATE, RESOURCE_ID INT, TS_ID INT, MAX_VALUE INT, BOOKED_UNITS INT default 0, REMAINING INT default MAX_VALUE - BOOKED_UNITS, BOOKED INT not null, USER_ID INT, TRANS_TIME TIMESTAMP )


El ''NUEVO'' es inaceptable para DESPUÉS de los activadores de inserción. Debe hacer la ''actualización de campo'' mediante un disparador de inserción ANTES de. Asi que,

CREATE TRIGGER foo BEFORE INSERT ON TSM_TRANSACTION_TBL FOR EACH ROW IF NEW.REMAINING IS NULL THEN SET NEW.REMAINING := NEW.MAX_VALUE - NEW.BOOKED_UNITS; END IF;;