Buen Día Quisiera saber a que se debe este error… mysql&gt; CREATE TABLE IF NOT EXISTS clients ( -&gt; <code>client_id</code> INTEGER UNS...

Carlos Miguel Orozco Vidaña

Carlos Miguel Orozco Vidaña

Pregunta
studenthace 5 años

Buen Día

Quisiera saber a que se debe este error…

mysql> CREATE TABLE IF NOT EXISTS clients (

->

client_id
INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,

->

name
VARCHAR(50) NOT NULL,

->

email
VARCHAR(100) NOT NULL UNIQUE,

->

birthdate
DATETIME,

->

gender
ENUM(‘M’, ‘F’, ‘ND’) NOT NULL,

->

active
TINYINT(1) NOT NULL DEFAULT 1,

->

created_at
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

->

updated_at
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

->

-> );

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Según veo la sintaxis es la misma que usa el profesor y no creo que el sistema operativo ponga problemas estoy usando un Windows 10, debo hacer alguna conf adicional.

Quedo atento.

1 respuestas
para escribir tu comentario
    Josué Villalaz

    Josué Villalaz

    studenthace 5 años

    Hola bro. No tengo una respuesta completa ni científica para este error pero puedo decirte lo siguiente: Este error de tipo 1293 de incorrecta definición de tabla al usar dos columnas del tipo TIMESTAMP es debido a que no se puede definir una columna con CURRENT_TIMESTAMP en la cláusula DEFAULT o ON UPDATE una vez que haya una columna con el tipo de datos TIMESTAMP. Pero esto no es totalmente cierto.Yo trabajé el mismo código y no tuve problemas.

    Usé que acepte nulos y no marcó errores.

    Usé que no acepte nulos y tampoco marcó errores

    Tengo la versión 5.7 de MySQL para 32 bits WIN 7. Puede que la versión que tengas marque este error. Para arreglarlo puedes utilizar la función NOW() en vez de usar CURRENT_TIMESTAMP siendo una alternativa con el mismo fin. NOW() retorna la fecha y hora actual.

    Created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, Updated_at TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE NOW(),
Curso de SQL y MySQL desde Cero ► Empieza Gratis

Curso de SQL y MySQL desde Cero ► Empieza Gratis

Aprende desde cero SQL, el lenguaje para gestionar y consultar bases de datos relacionales. Elabora tablas, cruza, elimina, modifica y consulta información. Conoce las funciones de MySQL como gestor de base de datos para crear aplicaciones y soluciones tecnológicas efectivas.

Curso de SQL y MySQL desde Cero ► Empieza Gratis
Curso de SQL y MySQL desde Cero ► Empieza Gratis

Curso de SQL y MySQL desde Cero ► Empieza Gratis

Aprende desde cero SQL, el lenguaje para gestionar y consultar bases de datos relacionales. Elabora tablas, cruza, elimina, modifica y consulta información. Conoce las funciones de MySQL como gestor de base de datos para crear aplicaciones y soluciones tecnológicas efectivas.