Mam tabelę, w której są kolumny techniczne validfrom oraz validto, obie typu timestamp. Jak zrobić w MySQL tak, żeby wstawić kilka nowych rekordów, wszystkie z tym samym validfrom? A jak wstawić nową wersję rekordu, tak żeby ustawiony validto starego rekordu i valid_from nowego rekordu były obok siebie, żeby nie było dziury w tabeli w żadnym momencie?
@Ginden @tangodown: prosty przykład: tabela stanów magazynowych. PRODUKT, ILOSC, VALID FROM, VALIDTO nie da się olać żadnej z kolumn VALID _*, bo przechowują różne informacje, obie niezbędne. I wracam do pytania: jak zrobić sobie jakiegoś define'a czy coś żeby od góry do dołu wstawić to samo? select now() from dual wygląda okropnie i głupio
@Golob: zapisujesz do zmiennej lokalnej wartość, która ma trafić do VALIDFROM, np. sysdate/systimestamp i później tę zmienną wrzucasz do inserta - załatwia to oba Twoje problemy ;)
Tylko lepiej, żeby VALIDTO i VALIDFROM poprzedniego rekordu były identyczne, a wykluczasz tylko na warunkach przez np.: VALIDTO > sysdate AND VALIDFROM <= sysdate chodzi o te znaki równości, żeby to one wykluczały 2 rekordy
Przypominam, że Iran to ruskie pachołki. Izrael jest jaki jest, ale jest naszym sojusznikiem i sojusznikiem USA. Kibicowanie w tym sporze Iranowi jest zdradą stanu i byciem pożytecznym idiotą xDDDD
Jak zrobić w MySQL tak, żeby wstawić kilka nowych rekordów, wszystkie z tym samym validfrom?
A jak wstawić nową wersję rekordu, tak żeby ustawiony validto starego rekordu i valid_from nowego rekordu były obok siebie, żeby nie było dziury w tabeli w żadnym momencie?
#mysql #sql
Klasyczny problem denormalizacji przedziałów.
PRODUKT, ILOSC, VALID FROM, VALIDTO
nie da się olać żadnej z kolumn VALID _*, bo przechowują różne informacje, obie niezbędne.
I wracam do pytania: jak zrobić sobie jakiegoś define'a czy coś żeby od góry do dołu wstawić to samo?
select now() from dual wygląda okropnie i głupio
Tylko lepiej, żeby VALIDTO i VALIDFROM poprzedniego rekordu były identyczne, a wykluczasz tylko na warunkach przez np.:
VALIDTO > sysdate AND VALIDFROM <= sysdate
chodzi o te znaki równości, żeby to one wykluczały 2 rekordy