[MySQL] Kopiowanie wierszy do tej samej tabeli + zmiana niektórych rekordów + warunek |
[MySQL] Kopiowanie wierszy do tej samej tabeli + zmiana niektórych rekordów + warunek |
20.09.2013, 12:37:13
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 5.09.2009 Ostrzeżenie: (0%) |
Chcę skopiować wiersze w obrębie tej samej tabeli zmieniając wartości w kolumnie ID_prowadzonekontrole. Do utworzenia nowych wierszy chcę dopuścić pod warunkiem, że nie istnieje obecnie rekord, który miałby takie same wartości w kolumnach ID_prowadzonekontrole i Name, jak wiersz właśnie kopiowany. Jeśli istnieje już taki wiersz, kopiowanie (tworzenie nowego wiersza) ma zostać pominięte.
Ani kolumna ID_prowadzonekontrole, ani Name nie mogą być UNIQUE. W tym celu napisałem taki zapytanie:
Oprócz tych kolumn jest jeszcze ID (AUTO INCREMENT). $protype jest kopiowane do $id. Zapytanie jest jednak nieskuteczne. Przypuszczam, że ze względu na Name = Name absolutnie nie mogło się to udać. Nie potrafię jednak zaproponować poprawki i stąd chciałbym poprosić Was o pomoc. Reytan |
|
|
20.09.2013, 13:18:56
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) |
UNIQUE można założyć nie tylko na pojedyncze kolumny, ale również na kombinacje kolumn, czyli na przykład jeśli na razie w tabeli nie ma powtórzeń, których chcesz uniknąć, to wystarczy
Wtedy każda z tych kolumn z osobna może mieć powtarzane wielokrotnie te same wartości, ale ich para musi już być unikalna. INSERT INGORE powinno wówczas prawidłowo zrobić to czego oczekujesz. |
|
|
20.09.2013, 14:48:27
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 5.09.2009 Ostrzeżenie: (0%) |
Dziękuję za rozwiązanie! Działa.
|
|
|
Wersja Lo-Fi | Aktualny czas: 3.06.2024 - 10:59 |