2012-04-12 1 views
2

Я создал таблицу Derby DB из NetBeans 7.1, используя окно «create table» внутри IDE. один из столбцов должен иметь бит типа (я хочу хранить логические данные - 1/0). Когда я добавил этот столбец, я использовал его как «char для бит данных». когда я добавляю строки, используя окно «Вставить записи» IDE, строки добавляются, но когда я пытаюсь добавить строки, используя SQL-команды (которые, как я в конечном итоге добавлю данные в таблицу из моего java-кода), он всегда бросает ошибка. если я попробую INSERT INTO APP.TEMP (ID, BOOL) VALUES (3, 0), ответ будет Columns of type 'CHAR() FOR BIT DATA' cannot hold values of type 'INTEGER'., и если я попробую INSERT INTO APP.TEMP (ID, BOOL) VALUES (3, '0'), ответ будет Columns of type 'CHAR() FOR BIT DATA' cannot hold values of type 'CHAR'. . Я думал, что для этого стоит создать таблицу с кодом SQL (CREATE TABLE...) и установить этот столбец просто как «бит», но когда я это сделаю, ответ я получаю Syntax error: Encountered "bit" at line 7, column 8.бит типа данных внутри derby DB (созданный в NetBeans)

так как я могу иметь булевое поле в DB Derby? или я должен отказаться и просто использовать целое число?

веселит, Эрез

ответ

3

Derby имеет фактический BOOLEAN тип данных, если это то, что вы ищете: http://db.apache.org/derby/docs/10.8/ref/rrefsqljBoolean.html

+0

благодарственное, но как же, когда я пытаюсь это - CREATE TABLE Games ( ID Int NOT NULL PRIMARY KEY, white_player_id INT NOT NULL, black_player_id INT NOT NULL, winner_id INT, активное логическое NOT NULL, start_date метка NOT NULL, end_date метка времени ) Я получаю сообщение об ошибке - «Синтаксическая ошибка: BOOLEAN» – eRez

+0

может быть, потому что я использую Derby 10.2? я читал, что только с версии 10.7 поддерживается булевское. если это так - я его обновляю? – eRez

+0

Да, Derby 10.2 ОЧЕНЬ старый. Модернизация проста; вот как: http://db.apache.org/derby/docs/10.8/devguide/cdevupgrades.html –