SQL Удалить и обновить - PullRequest
       6

SQL Удалить и обновить

2 голосов
/ 24 октября 2009

Я начинаю изучать SQL, и у меня возникла проблема.

У меня есть одна база данных с 4 таблицами.

Все 4 таблицы имеют идентификатор столбца.

Примерно так:

Table name................Column #1..................Column #2
  Table1....................  ID......................Data1..
  Table2......................ID......................Data2..
  Table3......................ID......................Data3..
  Table4......................ID......................Data4..

Я делаю выбор по ID.

SELECT Data1, Data2, Data3, Data4 FROM TABLE1
INNER JOIN TABLE2 ON TABLE1.ID = TABLE2.ID
INNER JOIN TABLE3 ON TABLE1.ID = TABLE3.ID
INNER JOIN TABLE4 ON TABLE1.ID = TABLE4.ID
WHERE TABLE.ID=' X '

Как удалить и обновить столбцы в этих 4 таблицах по идентификатору? Кто-нибудь может мне помочь? Я начинающий.

Ответы [ 3 ]

7 голосов
/ 24 октября 2009

В стандартном SQL вы можете ВЫБРАТЬ из более чем одной таблицы за раз, но вы не можете УДАЛИТЬ или ОБНОВИТЬ более чем одну таблицу за раз. Поэтому вы будете использовать такие команды, как:

ОБНОВЛЕНИЕ Таблица1 SET Столбец = Новые данные ГДЕ. , .

и

УДАЛИТЬ ИЗ ТАБЛИЦЫ 1 ГДЕ. , .

Исключением является то, что если таблицы связаны друг с другом "официально", используя PRIMARY и FOREIGN KEYS, вы можете иметь UPDATE связывающих столбцов и DELETE строк, которые "протекают" через связанные таблицы. Для этого вы используете опцию SQL CASCADE при объявлении ключей.

Некоторые поставщики предлагают дополнительные нестандартные расширения, которые позволяют ОБНОВЛЯТЬ или УДАЛЯТЬ из более чем одной таблицы, но для них вам придется указать базу данных, которую вы используете.

2 голосов
/ 24 октября 2009

Обновить значения столбца

UPDATE table1
SET data1 = myvalue
WHERE table1.id = ' X '

UPDATE table2
SET data2 = myvalue
WHERE table1.id = ' X '

UPDATE table3
SET data3 = myvalue
WHERE table1.id = ' X '

UPDATE table4
SET data4 = myvalue
WHERE table1.id = ' X '

Удалить строки, соответствующие определенным критериям

DELETE FROM table1
WHERE data1 = myvalue

DELETE FROM table2
WHERE data2 = myvalue

DELETE FROM table3
WHERE data3 = myvalue

DELETE FROM table4
WHERE data4 = myvalue

Удалить столбец из таблицы

ALTER TABLE table1
DROP COLUMN data1


ALTER TABLE table2
DROP COLUMN data2


ALTER TABLE table3
DROP COLUMN data3


ALTER TABLE table4
DROP COLUMN data4
0 голосов
/ 24 октября 2009

Не понимаю, почему вы так делаете. Я думаю, что ваш дизайн не так.

Если вы собираетесь обновить / удалить то, что находится в нескольких таблицах, добавьте новую таблицу и свяжите каждую таблицу с этой.

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