Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Добавить поле в таблицу
 
 автор: Diplex   (02.10.2009 в 10:56)   письмо автору
 
 

Всем привет, интересует такой вопрос.

У меня уже есть большая заполненная БД, теперь потребовалось добавить одно поле с одинаковым текстовым содержанием (например - ok) к каждой строчке таблицы.
Можно ли это сделать средствами phpmyadmin'а? Или сначала надо добавить это самое поле, а потом сделать скрипт, который "пройдёт" по таблице и заполнит значение?

Заранее спасибо!

  Ответить  
 
 автор: ride   (02.10.2009 в 11:07)   письмо автору
 
   для: Diplex   (02.10.2009 в 10:56)
 

если свой вариант не устраивает,
задайте дефолтное значение новому полю

  Ответить  
 
 автор: Diplex   (02.10.2009 в 11:22)   письмо автору
 
   для: ride   (02.10.2009 в 11:07)
 

Пытаюсь добавить значение "ok", когда добавляю новое поле, в пункт "По умолчанию**", пытается выполниться запрос:


ALTER TABLE `tbl` ADD `pole` TEXT DEFAULT 'ok' NOT NULL


если создать пустое поле, а потом пытать добавить значение, то вообще запрос непонятный:


ALTER TABLE `banlist` CHANGE `pole` `pole` TEXT CHARACTER SET utf8 COLLATE utf8_bin DEFAULT 'ok'


почему то, `pole` двоится...

вообщем, не понимаю, как забить дефолтное значение..

  Ответить  
 
 автор: ride   (02.10.2009 в 11:31)   письмо автору
 
   для: Diplex   (02.10.2009 в 11:22)
 

1. если вариант с дефолтным полем, то оно подействует только в случае, если поля не было вообще и вы добавляете его, а не изменяете существующее.
2. если у вас поле уже есть, что вам стоит выполнит запрос
update `banlist` set `pole`='ok'
?

  Ответить  
 
 автор: Diplex   (02.10.2009 в 11:49)   письмо автору
 
   для: ride   (02.10.2009 в 11:31)
 

> 1. если вариант с дефолтным полем, то оно подействует только в случае, если поля не было вообще и вы добавляете его, а не изменяете существующее.

Поля нет, я не могу (или не знаю) сделать его с нужным мне значением, получается только пустое. Все остальные действия выводят ошибки.

> 2. если у вас поле уже есть, что вам стоит выполнит запрос
update `banlist` set `pole`='ok'


Мне ничего не стоит выполнить запрос, просто хотел узнать, как просто, добавить поле с уже вписанным значением.

  Ответить  
 
 автор: ride   (02.10.2009 в 11:55)   письмо автору
 
   для: Diplex   (02.10.2009 в 11:49)
 

не обратил внимание на тип поля
для поля типа text значения по умолчанию не задается..

  Ответить  
 
 автор: Diplex   (02.10.2009 в 12:03)   письмо автору
 
   для: ride   (02.10.2009 в 11:55)
 

Т.е., кроме как update, значение в создаваемое поле не вбить?

  Ответить  
 
 автор: cheops   (02.10.2009 в 12:05)   письмо автору
 
   для: Diplex   (02.10.2009 в 12:03)
 

Можно и UPDATE - тоже не очень сложно, можно использовать другой текстовый тип для заполнения, а после этого его изменить.

  Ответить  
 
 автор: ride   (02.10.2009 в 12:05)   письмо автору
 
   для: Diplex   (02.10.2009 в 12:03)
 

я другого варианта не знаю

  Ответить  
 
 автор: cheops   (02.10.2009 в 12:03)   письмо автору
 
   для: Diplex   (02.10.2009 в 11:49)
 

Если это не принципиально - используйте VARCHAR или CHAR - потом, когда заполните таблицу, сможете изменить тип на TEXT.

  Ответить  
 
 автор: Diplex   (02.10.2009 в 12:06)   письмо автору
 
   для: cheops   (02.10.2009 в 12:03)
 

Спасибо, получилось :)

  Ответить  
 
 автор: cheops   (02.10.2009 в 12:00)   письмо автору
 
   для: Diplex   (02.10.2009 в 11:22)
 

>почему то, `pole` двоится...
Все нормально, в случае CHANGE так и должно быть - эта директива позволяет переименовывать поля - если бы вы хотели изменить название, вместо второго `pole` было бы новое название.

  Ответить  
 
 автор: Diplex   (02.10.2009 в 12:03)   письмо автору
 
   для: cheops   (02.10.2009 в 12:00)
 

Спасибо - не знал, теперь знаю :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования