2016-01-01 21 views
6

Chcę wstawić wartość do kolumny typu bitowego w MySQL. Ale otrzymuję błąd obcinania danych.Jak wstawić wartość dla kolumny bitowej mysql

CREATE TABLE `BITTESTTABLE` (
    `db_field` varchar(50) NOT NULL, 
    `is_editable` bit(1) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 

Jeśli jestem wstawiania wiersza z

INSERT INTO BITTESTTABLE values('XYZ','0')

Dostaję

dane zbyt długo na kolumnie 'is_editable' w wierszu 1

Tak jak wstawić dane dla kolumny typu bitowego?

+1

zmienić na "INSERT INTO BITTESTTABLE values ​​('XYZ', 0);' wstawić num ber 0 not the character .. – amdixon

+0

Dane typu Integer to działa idealnie, mimo że używam cudzysłowów do danych takich jak "123", ale dlaczego typ bits nie jest stosowany, czy istnieje jakiekolwiek ograniczenie w MySQL? – SrinivasDJ

+0

jeśli umieścisz jak "123" oznacza to, że potrwa jak ciąg, a Integer obsługuje wartość pustą, a wartość pusta jest również ciągiem –

Odpowiedz

2

Musisz wstawić dane w formacie bitowym takim jak ten INSERT INTO BITTESTTABLE values('XYZ',0);. Robisz values('XYZ','0'), więc bierzesz jako wartość ciągu.

1

Ogólnie rzecz biorąc, dla boolean lub bit typów danych, należy użyć 0 lub 1 tak:

INSERT INTO BITTESTTABLE values('XYZ',0); 
3

Ponieważ bit jest nie liczba ciągiem trzeba wprowadzić go jak

INSERT INTO BITTESTTABLE values('XYZ',0) 
+1

Załóżmy, że jeśli mam typ danych intermera, wstawię wartość kolumny jako "123", którą akceptuje mysql. nie spowoduje błędu. – SrinivasDJ

+0

Yup To akceptuje to –

+0

Och dzięki za powiedzenie mi tego. Kiedy dodawałem numer taki jak ten "1" w kolumnie Int, otrzymałem błąd! –

2

Powinieneś użyć:

INSERT INTO `BITTESTTABLE` VALUES('XYZ', b'0'); 
Powiązane problemy