Es -1 un carácter o dos caracteres en la columna INT

Asume esta tabla

`publish` INT( 1 ) NOT NULL DEFAULT  '0'

¿Se pueden ingresar -1, a -9 en esta columna?

preguntado el 09 de enero de 11 a las 05:01

¿Qué pasa cuando lo pruebas? -

@Vincent parece que los foros de StackExchange hacen que la gente sea perezosa (incluyéndome a mí :-) -

@Vincent: No tengo acceso a una base de datos mysql en este momento, y necesito generar algo de código. -

2 Respuestas

Si. El número entre paréntesis es solo el ancho de la pantalla:

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

En particular:

MySQL admite una extensión para especificar opcionalmente el ancho de visualización de los tipos de datos enteros entre paréntesis después de la palabra clave base para el tipo. Por ejemplo, INT (4) especifica un INT con un ancho de visualización de cuatro dígitos. Este ancho de visualización opcional puede ser utilizado por aplicaciones para mostrar valores enteros que tengan un ancho menor que el ancho especificado para la columna rellenándolos a la izquierda con espacios. (Es decir, este ancho está presente en los metadatos devueltos con los conjuntos de resultados. Si se usa o no, depende de la aplicación).

El ancho de visualización no limita el rango de valores que se pueden almacenar en la columna. Tampoco evita que los valores más anchos que el ancho de visualización de la columna se muestren correctamente. Por ejemplo, una columna especificada como SMALLINT (3) tiene el rango SMALLINT habitual de -32768 a 32767, y los valores fuera del rango permitido por tres dígitos se muestran en su totalidad utilizando más de tres dígitos.

El tipo INT admite enteros con y sin signo.

Respondido el 09 de enero de 11 a las 08:01

Sí, int (1) puede almacenar de -1 a -9. En Mysql, los paréntesis que siguen a la palabra clave base para el tipo se usan solo para rellenar 0 si el ancho del número mostrado es menor que lo que se especifica en el paréntesis. Por ejemplo, al usar int (3), 1 se mostrará como 001. Y si el número es mayor que el ancho dado, el número se muestra completamente. Por ejemplo, para int (3), 1234 se mostrará como 1234 completo. El ancho entre paréntesis no afecta el rango real que se puede almacenar.

Respondido el 09 de enero de 11 a las 08:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.