Тема: MySQL
Показать сообщение отдельно
Старый 23.12.2002, 18:55     # 3
Aeon
::VIP::
 
Аватар для Aeon
 
Регистрация: 28.06.2002
Адрес: neverwhere
Сообщения: 1 166

Aeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собой
против того что сказал Lord Skill не возражаю, но должен дополнить... базовые операции (создание баз и таблиц) проще делать вручную чем через php... итак.

Код:
DROP TABLE IF EXISTS test;
// если менять базу ( а обычно во время дизайна базы менять приходится 
// несколько раз, то это выкинет уже существующую таблицу... правда надо 
// позаботится о том чтобы в базе ещё не было нужных данных на этот 
// момент... если данные есть, надо работать через запрос UPDATE TABLE ).
CREATE TABLE test (
  id int(4) unsigned NOT NULL auto_increment,
  name varchar(50) default NULL,
  height int(4) unsigned default NULL,
  weight int(4) unsigned default NULL,
  hair set('светлый','тёмный','рыжий') default NULL,
  PRIMARY KEY (id)
);
тут всё зависит от объема работы... я лично обычно просчитываю весь дизайн и структуру базы сначала в голове и записываю sql-запрос для создания базы в текст-файле, который сохраняю как struct.sql (например).

Теперь весь вопрос в том как этот файл скормить в mysql... и делается это до безобразия просто.

во первых, ложим файл на твой сервер ( если же всё локально то ничего не надо двигать. ).

во вторых идём в шелл (dos-окно на виндах, или телнет / ssh (предпочтительно) на сервер).

теперь вводим: mysql test < struct.sql (где test = имя базы).

всё. Ну, если на базу стоит пароль доступа то конечно нужно его проставить в запросе, и тогда это выглядит примерно так: mysql -u username -pPassword test < struct.sql, но в целом это всё.
кстати, обратите внимание на отсутвие пробела между -p и паролем - это не очепятка, так и должно быть.

Альтернативный вариант:
Если же нужно просто быстренько создать таблицу или что-то быстро пофиксить, то можно с файлами голову не морочить а просто ввести запрос прямо в шелле.

для этого: входим в mysql через шелл вышеуказанным способом (не указывая базы и sql-файла, правда). Получаем доступ. Пишем use test (где test, опять же, имя базы).

вводим любой sql-запрос, и никаких проблем
Aeon вне форума