Forzar valores no nulos al insertar (MYSQL)

Hola.

Estoy trabajando con phpmyadmin, y quiero que me deniegue la inserción de registros en caso de que me deje algún campo en blanco.

¿cómo puedo hacerlo?

Gracias!
indica que el campo tiene que ser NOT NULL
nu_kru escribió:indica que el campo tiene que ser NOT NULL


La propiedad "Nulo" está establecida en "No", y aún así me deja insertar campos vacíos.
A que te refieres con campos vacios? hablas de varchar o un tipo similar de string? en ese caso eso no tiene absolutamente nada que ver con valores nulos.
Una solución es usar un trigger y hacerlo que falle antes del insert (ya que lamentablemente el CHECK es ignorado actualmente, que seria la solución correcta). En todo caso lo mejor es que valides la entrada antes de insertarla en tu base de datos y evitar el hack del trigger.
codestation escribió:A que te refieres con campos vacios? hablas de varchar o un tipo similar de string? en ese caso eso no tiene absolutamente nada que ver con valores nulos.
Una solución es usar un trigger y hacerlo que falle antes del insert (ya que lamentablemente el CHECK es ignorado actualmente, que seria la solución correcta). En todo caso lo mejor es que valides la entrada antes de insertarla en tu base de datos y evitar el hack del trigger.


Son tipo VARCHAR, TEXT, INT y ENU. No puedo validar la entrada por programación, porque uso exclusivamente la interfaz de PhpMyAdmin.

No sé qué son los triggers, pero los investigaré.

Gracias!
banderas20 escribió:
codestation escribió:A que te refieres con campos vacios? hablas de varchar o un tipo similar de string? en ese caso eso no tiene absolutamente nada que ver con valores nulos.
Una solución es usar un trigger y hacerlo que falle antes del insert (ya que lamentablemente el CHECK es ignorado actualmente, que seria la solución correcta). En todo caso lo mejor es que valides la entrada antes de insertarla en tu base de datos y evitar el hack del trigger.


Son tipo VARCHAR, TEXT, INT y ENU. No puedo validar la entrada por programación, porque uso exclusivamente la interfaz de PhpMyAdmin.

No sé qué son los triggers, pero los investigaré.

Aqui tienes la info http://dev.mysql.com/doc/refman/5.0/es/create-trigger.html

Gracias!


Los triggers(disparadores) son procedimientos, se usan para que salga un error u cualquier otra cosa, antes o despues de hacer una cierta accion(insertar,actualizar,borrar) en una tabla. Por ejemplo, que te salga un error al intentar insertar un valor nulo en una determinada tabla.
Como te han dicho, la solución pasa por usar triggers. Si una columna de tipo cadena está definida como NOT NULL, si no se especifica un valor, la fila se inserta pero se le asigna por defecto la cadena vacía. Y bueno, para el resto de tipo de datos los valores por defecto que el sentido común te diga XD (entero 0, hora '00:00:00'...).
6 respuestas