![]() |
|
Модераторы: skyboy |
![]()
|
|
| progbeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
Пытаюсь создать базу, но выдаётся такая ошибка:
SQL-запрос : CREATE TABLE `main` ( `Date` DATE DEFAULT '15.06.2007' NOT NULL , `Text` VARCHAR NOT NULL , `Np1` INT NOT NULL , `Np2p3` INT NOT NULL , `NRD` INT NOT NULL , INDEX ( `Text` ) ) Ответ MySQL: You have an error in your SQL syntax near 'NOT NULL, `Np1` INT NOT NULL, `Np2p3` INT NOT NULL, `NRD` INT NOT NULL, INDEX (`' at line 1 Что это значит? |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
для типа varchar надо задавать верхний предел длины. кажется, вот так: "varchar(255)", где в примере "255" - максимальная преполагаемая длина данных
|
|||
|
||||
| progbeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
А если выставить тип LONGTEXT, то какая максимальная длина?
Добавлено через 2 минуты и 13 секунд А, 64 Кб. Добавлено через 4 минуты и 42 секунды А теперь такая ошибка: SQL-запрос : CREATE TABLE `main` ( `Date` DATE DEFAULT '15.06.2007' NOT NULL , `Text` LONGTEXT( 4000 ) NOT NULL , `Np1` INT NOT NULL , `Np2p3` INT NOT NULL , `NRD` INT NOT NULL ) Ответ MySQL: You have an error in your SQL syntax near '(4000) NOT NULL, `Np1` INT NOT NULL, `Np2p3` INT NOT NULL, `NRD` INT NOT NULL)' at line 1 Но longtext позволяет длину в 4000 символов. |
|||
|
||||
| bawukr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 4.8.2006 Репутация: нет Всего: нет |
Это будет работать:
CREATE TABLE `main` ( `Date` DATE DEFAULT '15.06.2007' NOT NULL , `Text` VARCHAR(255) NOT NULL , `Np1` INT NOT NULL , `Np2p3` INT NOT NULL , `NRD` INT NOT NULL , KEY `main` (`Text`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; Несколько замечаний, не знаю какой формат времени принимает ваша база, но по умолчанию он YYYY-MM-DD т.е. строку `Date` DATE DEFAULT '15.06.2007' NOT NULL , меняем на `Date` date NOT NULL default '2007-05-16', Насчет индекса правильней будет создавать KEY `main` (`Text`) И указывать тип базы и кодировку ENGINE=MyISAM DEFAULT CHARSET=utf8; На MySQL 5 это работает 100% Добавлено через 1 минуту и 6 секунд Для LONGTEXT можно не указывать длину... и не стоит парится по поводу того сколько это будет занимать в базе. |
|||
|
||||
| progbeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
Я использую MySQL 3.23.52.
Спасибо за замечания насчёт времени. Но если использовать VARCHAR(255), значит текст, содержащий больше 256 символов нельзя будет забить? А мне надо 4000. |
|||
|
||||
| bawukr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 4.8.2006 Репутация: нет Всего: нет |
VARCHAR(4000), и все.... Добавлено через 40 секунд Но как по мне то лучше использовать mediumtext или longtext |
|||
|
||||
| progbeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
А если использовать MEDIUMTEXT, то нужно указывать предельную длину?
|
|||
|
||||
| bawukr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 4.8.2006 Репутация: нет Всего: нет |
нет
|
|||
|
||||
| progbeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
А теперь MySQL вот что выдаёт:
SQL-запрос : CREATE TABLE `main` ( `Date` DATE DEFAULT '2007-05-16' NOT NULL , `Text` MEDIUMTEXT NOT NULL , `Np1` INT NOT NULL , `Np2p3` INT NOT NULL , `NRD` INT NOT NULL , INDEX ( `Text` ) ) Ответ MySQL: BLOB column 'Text' used in key specification without a key length |
|||
|
||||
| bawukr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 4.8.2006 Репутация: нет Всего: нет |
INDEX ( `Text`(333) )
|
|||
|
||||
| progbeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
а 333 - это что за параметр (значение, атрибут и т.п.)?
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
что такое индекс - в курсе вообще?
так вот, при построении индекса(неуникального ключа) на основе типов данных переменной длины(mediumtext, varchar etc) необходимо указать явно, сколько байт считая с начала надо взять, чтоб можно было считать эту "подстроку" "достаточно уникальной". Например, если у тебя в поле "gender" пол указан строками "мужской"/"женский"(что абсолютно нерационально и просто приведено в пример), то уникальность будет достигаться уже при работе только с первым символом строки(INDEX (`gender`(1))). А при хранении в поле surname фамилии, лучше отвести под ключ длину побольше(хотя бы 5-6 символов - если будет сильно много, может замедлить работу при вставке/удалении - т.е. при перестройке индекса). |
|||
|
||||
| progbeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
Это мне понятно, только я базу создаю не вручуную пиша запрос, а при помощи панели управления. Так вот, меня и интересует, где именно там нужно вписать параметр. Скриншот прилагаю.
Присоединённый файл ( Кол-во скачиваний: 4 )
screen.jpg 17,53 Kb |
|||
|
||||
| igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 5 Всего: 17 |
-------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| progbeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
Спасибо
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |