Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: INSERT lub UPDATE jeżeli istnieje
Forum PHP.pl > Forum > Bazy danych > MySQL
Raga
Witam,
Mam tabele o strukturze:
id - INT, Autoincrement
nazwa - VARCHAR
baza - TINYINT
data - DATE
wartosc - INT

Służy ona jako cache.
Czasami aktualizuje niektóre rekordy w cache-u i chciałbym by SQL myślał czy dany rekord usunąć i wstawić nowy, czy po prostu dodać (jeżeli ten nie istnieje).

Znalazłem informacje na temat ON DUPLICATE KEY UPDATE, jednak dane pole musi być PRIMARY bądź UNIQUE.

Natomiast u mnie unikalny rekord to taki, który ma identyczną nazwę i identyczną datę (jednocześnie). W przypadku tej samej daty, a różnych nazw i wicewersa dany rekord dla mnie nie jest unikalny. Czy można to jakoś załatwić przez SQL-a, czy muszę tworzyć własną logikę?
nospor
Cytat
, który ma identyczną nazwę i identyczną datę (jednocześnie)
Przeciez mozesz zalozyc UNIQUE na dwa pola jednoczesnie.
Raga
No, a SQL będzie traktował rekord unikalny w sposób data i nazwa jednocześnie (to co chcę), czy data lub nazwa jednocześnie (to czego się obawiam)?
nospor
Przeciez ci powiedzialem ze mozesz zalozyc UNIQUE z obu pól, wiec baza bedzie patrzyla przy takim UNIQUE jako calosc. Nie albo jedno albo drugie, tylko oba naraz.
Tylko masz zrobic jeden UNIQUE z obu pol a nie dwa UNIQUE na kazde pole osobno
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.