2010-12-09 17 views
32

Quería hacer un campo verdadero/falso para si un artículo está en stock.MySQL Booleano "tinyint (1)" tiene valores de hasta 127?

Quería establecerlo en Boolean (que se convierte en tinyint(1)), 1 en stock, 0 para stock no disponible.

Estoy recibiendo alimentaciones de proveedores, así que pensé: "¿Y si pasan cuántos son insumos?"

Así que me preguntaba si insertara un número superior a 1 lo que sucedería. Supuse que sería por defecto a 1.

Para mi sorpresa, me permitirá sostener cualquier número hasta 127, algo más de valor por defecto es 127.

Puede alguien explicar por qué?

Respuesta

52

El firmado TINYINT tipo de datos puede almacenar valores enteros entre -128 y 127.

Sin embargo, TINYINT(1) no cambiar el valor mínimo o máximo que puede almacenar. Solo dice mostrar solo un dígito cuando los valores de ese tipo se imprimen como salida.

+2

¿Hay alguna razón para no utilizar el bit (1) en su lugar? Aunque me doy cuenta de que por defecto es 0 si intento establecerlo en> 1. – fncomp

+1

@JoshN: No estoy muy seguro de eso, pero encontré [esta pregunta] (http: // stackoverflow.com/questions/488811/tinyint-vs-bit) que pueden ayudar. – BoltClock

+0

Esto significa que cuando trato de seleccionarlo en mi aplicación (php) obtendré el primer dígito, entonces 127 será 1 y 97 será 9? –

7

El tipo de datos tinyint utiliza 1 byte de almacenamiento. Se pueden almacenar 256 valores enteros posibles usando 1 byte (-128 a 127). si define como tinyint unsigned, los valores negativos se descartan, por lo que es posible almacenarlos (de 0 a 255).

6

Consulte here para saber cómo MySQL maneja esto. Si utiliza MySQL> 5.0.5 se puede utilizar como BIT tipo de datos (en las versiones anteriores BIT se interpretará como TINYINT(1). Sin embargo, el (1) -parte es sólo el ancho de la pantalla, no la longitud interna.

+3

¿Puede explicar la diferencia entre * ancho de pantalla * y * longitud interna *. Soy nuevo en este concepto, ¿pensé que lo que estaba en la base de datos era lo que se seleccionó? –

+1

solicitando explicar esto también. – MaXi32

Cuestiones relacionadas