Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zdefiniować tablice z dwoma kluczami
Forum PHP.pl > Forum > Bazy danych > MySQL
Paplo
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
nospor
ADD UNIQUE KEY `prod_ware` (`warehouse_id`,`product_id`);
O to ci chodzi?
Paplo
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 ;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.