Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Campos NOT NULL en MySQL 5.0

Estas en el tema de Campos NOT NULL en MySQL 5.0 en el foro de Mysql en Foros del Web. Que tal!!! Por más que intento, MySQL 5.0 no hace caso y no me deja crear campos definidos como NOT NULL , sino que irremediablemente ...
  #1 (permalink)  
Antiguo 29/06/2006, 14:07
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
Campos NOT NULL en MySQL 5.0

Que tal!!!

Por más que intento, MySQL 5.0 no hace caso y no me deja crear campos definidos como NOT NULL, sino que irremediablemente los deja como NULL. Y tampoc hace caso al ediatr los campos para cambiarlos a NOT NULL.

He intentado hacerlo directamente con phpMyAdmin o mediante SQL, pero nada de dada, siempre los deja NULL.

Código:
CREATE TABLE `tabla` ( 
`campo1` VARCHAR( 22 ) NOT NULL , 
`campo2` VARCHAR( 222 ) NOT NULL 
) ENGINE = MYISAM ;
__________________
El conocimiento es libre: Movimiento por la Devolución
  #2 (permalink)  
Antiguo 29/06/2006, 15:46
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Lo probé en un shell mysql en linux y aqui el resultado:

Código:
mysql> CREATE TABLE `tabla` (
    -> `campo1` VARCHAR( 22 ) NOT NULL ,
    -> `campo2` VARCHAR( 222 ) NOT NULL
    -> ) ENGINE = MYISAM ;
Query OK, 0 rows affected (0.00 sec)

mysql> describe tabla;
+--------+--------------+------+-----+---------+-------+
| Field  | Type         | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| campo1 | varchar(22)  | NO   |     | NULL    |       |
| campo2 | varchar(222) | NO   |     | NULL    |       |
+--------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Dice por defecto nulo, pero no se permiten nulos. Habría que dar valores por defecto.
  #3 (permalink)  
Antiguo 25/07/2006, 19:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 12
Antigüedad: 19 años, 1 mes
Puntos: 0
De acuerdo

Completamente de acuerdo con la respuesta anterior. la esctructura de la tabla es la misma debemos interpretar ese no dentro del campo como una negacion de nulos, ya que si intentas dejar vacio ese campo te marca error, comprobado.
  #4 (permalink)  
Antiguo 12/06/2009, 13:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 17
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: De acuerdo

Cita:
Iniciado por upemor Ver Mensaje
Completamente de acuerdo con la respuesta anterior. la esctructura de la tabla es la misma debemos interpretar ese no dentro del campo como una negacion de nulos, ya que si intentas dejar vacio ese campo te marca error, comprobado.


A mi tambien me pasa algo parecido , a mi me deja dejar en blanco los campos not null no me respeta casi ninguna restriccion del campo ,por lo unico uqe me da error cuando estoy en phpmyadmin es cuando ser repite la clave primaria nada mas
  #5 (permalink)  
Antiguo 12/06/2009, 16:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: De acuerdo

Cita:
Iniciado por arbi Ver Mensaje
A mi tambien me pasa algo parecido , a mi me deja dejar en blanco los campos not null no me respeta casi ninguna restriccion del campo ,por lo unico uqe me da error cuando estoy en phpmyadmin es cuando ser repite la clave primaria nada mas
No resucites post viejos...

Postea la sentencia de creación y dinos con qué estás trabajando para el código.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 12/06/2009, 19:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 17
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: De acuerdo

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No resucites post viejos...

Postea la sentencia de creación y dinos con qué estás trabajando para el código.
Estoy trabajando con mysql5 pero el que viene en el paquete del xamp (que viene todo integrado el php5,apache5,mysql5..)


Ok mira te comento de las cosas que he hecho y mas o menos me han funcionado: respecto a lo de que no me cumplia casi ninguna restriccion (como por ejmplo dejar un campo int en blanco y me decia mysql:" warning... se han insertado x filas pero no cumplen las condiciones del tipo de dato...,o dejar una fecha en blanco y me la sustituia por unos ceros..., yo lo que queria era que no me dejase insertar el dato, no que me diese el mensaje de warning...).

El tema era que tenia que cambiar el "modo sql" que me arrancaba mysql el "sql-mode" ,en los tutoriales de mysql decia que pusiera en el archivo my.ini que esta en la carpeta de windows la linea : sql-mode="tipo de modo sql(traditional,strict-all-tables..." ,yo lo ponia pero no me afectaba para nada y era pq como tengo el xamp pues este cuando arranca el servicio de mysqld le carga un archivo de configuracion propio que se llama my.cnf que esta en mi caso: d:/xamp/mysql/bin/my.cnf es un archivo de texto... y nada insertando esa linea ahi si me da ya los errores en vez de los warnings ,poniendo el sql-mode="traditional" (en modo tradicional).

Y lo otro era lo de la restriccion del campo a not null que como era de tipo varchar pues al dejarlo en blanco lo interpreta como un dato mas ya que al dejarlo en blanco no es null sino blanco..., y nada habrá que controlar que el campo no este en blanco antes de enviarlo a al base de datos...






AHORA: ahora pues no doy con como poner la variable autocommit en off,escribo directamente en sql "set autocommit=off" y me lo acepta ,pero despues inserto una fila y le hago un rollback para deshacer los cambios y no se deshace nada de nada todo sigue igualito que estaba.Es mas si hago un "show variables" la varibale autocommit esta a on, que esta activada y nada ahi ya no se que hacer mas...

Última edición por arbi; 12/06/2009 a las 20:00 Razón: Problema que tengo ahora.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:36.