2013-11-02 9 views
0

Hy У меня проблема. Я хочу создать таблицу с некоторыми атрибутами, и некоторые из них будут указаны как NOT NULL. И вот проблема. Когда я вставляю некоторые данные в таблицу, и когда я вставляю '' (пустую одиночную строку), он вводит данные в таблицу, но я не хочу этого ... Как ограничить ввод данных из ввода одной строки или ничего не вводить.Notnull и пустая строка в My SQL

вот мой стол

CREATE TABLE tbl_Film (

ID INT UNSIGNED PRIMARY KEY,

Naziv VARCHAR (50) NOT NULL,

Zanr VARCHAR (50) NOT NULL,

Opis УАКСНАК (150) NULL, то

Kolicina INT UNSIGNED NOT NULL

);

INSERT INTO tbl_Film VALUES (1, '', 'Animirani', 'Мала Ribica', 2)

Это входные пустые данные в Naziv, и я не хочу, чтобы .. Мне нужно ограничить, что ..

http://prntscr.com/21gfgd

ответ

0

Я не знаю, если это возможно в SQL, но почему бы вам обменять «» в приложении в строку NULL?

+0

вы можете тел мне, как это сделать, потому что я новичок :(. Кстати я Использование My SQL Workbench –

0

В SQL, NULL не то же самое, как '' (за исключением MS SQL через OLEDB AFAIR, в котором '' должны храниться в NULL).

Значения NULL представляют собой отсутствующие неизвестные данные.

См http://www.w3schools.com/sql/sql_null_values.asp

В обычном SQL, вы должны использовать СНЕСК, например,

CREATE TABLE tbl_Film (
ID INT UNSIGNED PRIMARY KEY, 
Naziv VARCHAR(50) NOT NULL, 
Zanr VARCHAR(50) NOT NULL, 
Opis VARCHAR(150) NULL, 
Kolicina INT UNSIGNED NOT NULL, 
CHECK (Naziv <> '') 
); 

К сожалению, это СНЕСК НЕ реализуется MySQL:

Оговорка ПРОВЕРКА анализируется, но игнорируется всеми механизмами хранения. См http://dev.mysql.com/doc/refman/5.7/en/alter-table.html

Таким образом, единственное решение, которое я вижу, на уровне БД, должен написать P/SQL trigger ...