Wpis z mikrobloga

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 valid
to starego rekordu i valid_from nowego rekordu były obok siebie, żeby nie było dziury w tabeli w żadnym momencie?

#mysql #sql
  • 5
@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