Проблемма с CREATE TABLE

serii_v

Новичок
Проблемма с CREATE TABLE

Хочу создать таблицу через MySQL Command Line Client запросом CREATE TABLE male(username VARCHAR(12),firstname VARCHAR(50),lastname VARCHAR(50),hash VARCHAR, и т.д.);, а он жалуется: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'month TINYINT UNSIGNED,day TINYINT UNSIGNED,year SMALLINT UNSIGNED,email VARCHAR' at line 1. У меня версия 5.0.
 

Panchous

Павел
Тебе же написали, что делать: ищи ошибку в синтаксисе запроса.
[offtop]
а вместо полей ГОД, МЕСЯЦ, ЧИСЛО нельзя использовать поле типа ДАТА?
[/offtop]
 

zarus

Хитрожопый макак
Названия таблиц и полей в MySQL НАДО заключать в кавычки-апострофы
CREATE TABLE `male` (`username` VARCHAR(12), ....)
И, собственно, ругается он у тебя на то, что ты используешь зарезервированное слово в качестве названия поля таблицы....
 

Popoff

popoff.donetsk.ua
Я, кстати, использую префиксы во всех именах столбцов, указывающие тип поля. Как побочный эффект - имя не совпадет с зарезервированным словом. Например: i_month, dt_create, i_order и т.п.
 

serii_v

Новичок
Он всё равно ругается. Вот строка запроса:
CREATE TABLE 'male'('username' VARCHAR(12),'firstname' VARCHAR(50),'lastname' VARCHAR(50),'hash' VARCHAR,'d_month' TINYINT UNSIGNED,'d_day' TINYINT UNSIGNED,'d_year' SMALLINT UNSIGNED,'email' VARCHAR(50),'country' VARCHAR(30),'state' VARCHAR(30),'city' VARCHAR(30),'street' VARCHAR(120),'zip' VARCHAR,'phone' VARCHAR,'height' SMALLINT UNSIGNED,'weight' SMALLINT UNSIGNED,'eye' TINYINT UNSIGNED,'hair' TINYINT UNSIGNED,'religion' TINYINT UNSIGNED,'marital' TINYINT UNSIGNED,'children' TINYINT UNSIGNED,'employment' VARCHAR(60),'smoke' TINYINT UNSIGNED,'drink' TINYINT UNSIGNED,'aboutme' TEXT,'lookingfor' TEXT,'balance' SMALLINT,'payment' SMALLINT UNSIGNED);
 

Popoff

popoff.donetsk.ua
serii_v
А как он ругается? Он говорит: "Фу! Плохой запрос! Самое слабое звено!"?
 

serii_v

Новичок
А вот так: :)
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 'male'('username' VARCHAR(12),'firstname' VARCHAR(50),'lastname' VARCHAR(50),'ha' at line 1
 

chira

Новичок
serii_v

кавычки бывают трёх видов
1. '
2. "
3. `

для твоего запроса нужны кавычки третьего вида ...
 

serii_v

Новичок
Да всё равно результат тот же. Вот строка:
CREATE TABLE `male`(`username` VARCHAR(12),`firstname` VARCHAR(50),`lastname` VARCHAR(50),`hash` VARCHAR,`d_month` TINYINT UNSIGNED,`d_day` TINYINT UNSIGNED,`d_year` SMALLINT UNSIGNED,`email` VARCHAR(50),`country` VARCHAR(30),`state` VARCHAR(30),`city` VARCHAR(30),`street` VARCHAR(120),`zip` VARCHAR,`phone` VARCHAR,`height` SMALLINT UNSIGNED,`weight` SMALLINT UNSIGNED,`eye` TINYINT UNSIGNED,`hair` TINYINT UNSIGNED,`religion` TINYINT UNSIGNED,`marital` TINYINT UNSIGNED,`children` TINYINT UNSIGNED,`employment` VARCHAR(60),`smoke` TINYINT UNSIGNED,`drink` TINYINT UNSIGNED,`aboutme` TEXT,`lookingfor` TEXT,`balance` SMALLINT,`payment` SMALLINT UNSIGNED);
 

Gas

может по одной?
`phone` VARCHAR, `hash` VARCHAR
думать когда начнём?

-~{}~ 28.12.05 11:22:

serii_v
установи какую-нить тулзу для работы с базами, например, mysql front. Визуально создавая таблицу, определяешь количество полей их типы, потом смотришь какой sql запрос эта тулза отправила mysql'ю и так учишься.
 

serii_v

Новичок
Поставил MySQL front. Вроде всё сделал правильно, но он выдаёт ошибку:
Ошибка при выполнении (1064). Ответ от сервера:
You have an error in your SQL syntax; chech the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL, `d_month` tinyint unsigned NOT NULL DEFAULT '0',
 
Сверху