2012-05-13 2 views
0

Когда я устанавливаю таблицу, объявляет атрибут 'name', поскольку varchar делает это правилом проверки или это просто определяет тип данных?Является ли VARCHAR или INT правилом проверки?

CREATE TABLE `categories` (
    `id` int(11) NOT NULL auto_increment, 
    `name` varchar(200) NOT NULL, 
    `user_id` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
); 

, что я запутался над это устанавливает ли VARCHAR тип данных, правила проверки или оба из этих вещей. Таким образом, VARCHAR является правилом проверки, потому что кто-то не может вводить INT?

ответ

0

Это зависит от типа данных, которые вы будете хранить в этих полях, и определяет тип данных, которые вы должны использовать.

Примера: name поле будет хранить строку символов (буквальную) и HANCE не может быть типа INT и должно быть STRING типа, который в SQL является CHAR или VARCHAR или NVARCHAR

+0

Я смущен тем, задает ли VARCHAR тип данных, правило проверки или обе эти вещи. Таким образом, VARCHAR является правилом проверки, потому что кто-то не может вводить INT? – user1392324

+0

Ну, в обоих случаях вы можете думать, поскольку данные, хранящиеся в строках, вам нужно будет выбрать VARCHAR как тип данных для этого поля и когда вы установите VARCHAR как тип данных; ваш движок sql убедитесь, что вы не можете поместить неверные данные типа в это поле ... что обязательно подтверждает. Надеюсь, это прояснит эту идею. – Rahul

0

Он определяет только тип данных. Если ошибочный тип данных передается, в зависимости от настроек сервера выполняется имплицитное преобразование данных (в большинстве случаев) или запрос отклоняется (пример: режим STRICT MySQL). Проверка данных обычно выполняется в приложении или в триггере.

Смежные вопросы