Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak zdefiniować tablice z dwoma kluczami
Paplo
post 1.02.2016, 14:57:35
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 28.10.2015

Ostrzeżenie: (0%)
-----


Witam
Mam problem, temat trochę nie przekazuje tego co bym chciał zrobić, muszę napisać więcej, a wiec:
mam tabele:
  1. DROP TABLE IF EXISTS `quantity`;
  2. CREATE TABLE IF NOT EXISTS `quantity` (
  3. `product_id` int(11) NOT NULL,
  4. `quantity` int(11) NOT NULL,
  5. `warehouse_id` int(11) NOT NULL
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

i teraz chciałbym tak ją zdefiniować aby unikalne były para dwóch wierszy, w sensie aby tylko raz produkt mógł być na magazynie i on abym mógł dodać np tak:

  1. INSERT INTO `quantity` (`product_id`, `quantity`, `warehouse_id`) VALUES ('1015', '10', '1')
  2. INSERT INTO `quantity` (`product_id`, `quantity`, `warehouse_id`) VALUES ('1015', '10', '2')
  3. INSERT INTO `quantity` (`product_id`, `quantity`, `warehouse_id`) VALUES ('2222', '10', '1')
  4. INSERT INTO `quantity` (`product_id`, `quantity`, `warehouse_id`) VALUES ('2222', '10', '2')


i aby już
  1. INSERT INTO `quantity` (`product_id`, `quantity`, `warehouse_id`) VALUES ('1015', '10', '2')
drugi raz się nie dało dodać

narazie takie coś mam, ale nie dokonca działą tak jak bym chciał
  1. ALTER TABLE `quantity`
  2. ADD KEY `warehouse_id` (`warehouse_id`), ADD KEY `product_id` (`product_id`);

  1. ALTER TABLE `quantity`
  2. ADD CONSTRAINT `quantity_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`product_id`),
  3. ADD CONSTRAINT `quantity_ibfk_2` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`warehouse_id`);


bo jak nie mam żadnego unikalnego klucza to nie da się edytować takiej tabeli

Ten post edytował Paplo 1.02.2016, 14:59:26
Go to the top of the page
+Quote Post
nospor
post 1.02.2016, 15:01:32
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ADD UNIQUE KEY `prod_ware` (`warehouse_id`,`product_id`);
O to ci chodzi?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Paplo
post 1.02.2016, 15:13:33
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 28.10.2015

Ostrzeżenie: (0%)
-----


Tak dziękować głupi jestem ;/ robiłem tak i niedziałało:
  1. ALTER TABLE `quantity`
  2. ADD UNIQUE KEY `warehouse_id` (`warehouse_id`), ADD UNIQUE KEY `product_id` (`product_id`);


a wystarczyło dodać w jedyna nawiasie ;/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 01:19