Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Добавление, удаление ограничения FOREING KEY
  2.  
  3. Удаление ограничения внешнего ключа:
  4. ALTER table имя_таблицы DROP CONSTRAINT имя_ограничения;
  5.  
  6. Добавление ограничения внешнего ключа в существую таблицу:
  7. ALTER table имя_таблицы ADD FOREIGN KEY (имя_атрибута_ссылающейся_таблицы) REFERENCES имя_главной_таблицы(имя_атрибута_главной_таблицы);
  8. -------------------------------------------------------------------------------------------------------
  9.  
  10.  
  11. Выражение ON DELETE и ON UPDATE опция CASCADE:
  12.  
  13. CASCADE: автоматически удаляет или изменяет строки из зависимой таблицы при удалении или изменении связанных строк в главной таблице.
  14.  
  15. Синтаксис:
  16.  
  17. FOREIGN KEY (atribute_name_3) REFERENCES имя_главной_таблицы (атрибут_главной таблицы) ON DELETE CASCADE
  18. FOREIGN KEY (atribute_name_3) REFERENCES имя_главной_таблицы (атрибут_главной таблицы) ON UPDATE CASCADE
  19.  
  20. После выражения REFERENCES может идти выражение ON DELETE и ON UPDATE, которые уточняют поведение при удалении или обновлении данных.
  21. Если при удалении строки из главной таблицы необходимо, чтобы были удалены все связанные строки из зависимой таблицы, то применяется каскадное удаление, то есть опция CASCADE.
  22.  
  23.  
  24. При удалениии значений (VALUES) из главной таблицы (referenced table), из колонки, на которую ссылается подчиненная таблица (referencing table).
  25. программа выдаст ошибку:
  26. ERROR:  update or delete on table "products" violates foreign key constraint "orders_product_no_fkey" on table "orders"
  27. DETAIL:  Key (product_no)=(0) is still referenced from table "orders".
  28.  
  29. ОШИБКА: обновление или удаление в таблице "products" нарушает ограничение внешнего ключа "orders_product_no_fkey" в таблице "orders"
  30. ДЕТАЛИ: На ключ (product_no) = (0) все еще ссылаются из таблицы «заказы».
  31. ----------------------------------------------------------------------------
  32.  
  33. Связь между таблицами.
  34.  
  35. Виды связей(отношений):
  36.  
  37. 1 Один к одному;
  38. 2 Одни ко многим;
  39. 3 Многие ко многим;
  40.  
  41. Связь многие ко многим:
  42.  
  43.  
  44. Пример:
  45.  
  46. CREATE TABLE products (
  47. product_no integer PRIMARY KEY,
  48. name text,
  49. price numeric
  50. );
  51.  
  52. CREATE TABLE orders (
  53. order_id integer PRIMARY KEY,
  54. shipping_address text,
  55. telefon varchar
  56. );
  57.  
  58. CREATE TABLE order_items (
  59. product_no integer REFERENCES products,
  60. order_id integer REFERENCES orders,
  61. quantity integer,
  62. PRIMARY KEY (product_no, order_id)
  63. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement