国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Verwenden Sie Trigger, um beim Einfügen Unix-Zeitstempel zu generieren und gleichzeitig das Klonen vorhandener Datens?tze zu erm?glichen und Duplikate zu vermeiden
P粉947296325
P粉947296325 2024-01-10 17:51:06
0
1
520

Ich mache ein Event-System. Nehmen wir an, am 12. September 2022 findet eine Veranstaltung namens ?Go Dance“ statt.

Wenn ein Ereignis zur Datenbank hinzugefügt wird, erstellen wir einen Unix-Zeitstempel in einer der Zeilen. Wir verwenden dazu die Standardeinstellung unix_timestamp()

Dieser Zeitstempel (z. B. 654213987) wird als Teil der URL verwendet, damit sich Personen für die Veranstaltung 654213987 registrieren k?nnen. Hier kann man sich zum Beispiel registrieren. http://myevents/signup/654213987

Der Veranstalter hat die Veranstaltungsbeschreibung am 12. September 2022 verfasst.

Der Veranstalter m?chte n?chstes Jahr die gleiche Veranstaltung veranstalten, m?chte aber die Beschreibung nicht umschreiben. Kopieren oder klonen Sie einfach die Originaldatei, ohne sie zu l?schen.

Dies l?sst sich leicht programmgesteuert in PHP durchführen, aber ich verwende XCRUD und kann es nicht ?ndern, sodass meine einzigen Optionen darin bestehen, Trigger oder einen fest verdrahteten Teil von MYSQL zu verwenden.

Wenn XCRUD eine Kopie erstellt, verwendet es ein normales INSERT, das die Originalkopie abzüglich der Masterkopie enth?lt.

Wenn ich die Spalte eindeutig mache, ist das Klonen nicht m?glich. Wenn nicht, wird der Zeitstempel kopiert.

Ist es m?glich, einen Ausl?ser (oder einen anderen Mechanismus) zu erstellen, um zu erkennen, dass ein Duplikat vorhanden ist, und das Duplikat durch einen anderen neuen Zeitstempel zu ersetzen?

Ich habe bei Stackoverflow gesehen, dass man mithilfe von Triggern Zeitstempel hinzufügen kann, aber ich wei? einfach nicht, wie ich das machen soll, um Duplikate zu vermeiden.

P粉947296325
P粉947296325

Antworte allen(1)
P粉057869348

示例。

CREATE TABLE test (id INT, ts DATE);
CREATE TRIGGER tr_bi_test_add_1_week
BEFORE INSERT ON test
FOR EACH ROW
BEGIN
    WHILE EXISTS ( SELECT NULL
                   FROM test
                   WHERE ts = NEW.ts ) DO
        SET NEW.ts = NEW.ts + INTERVAL 1 WEEK;
    END WHILE;
END
INSERT INTO test VALUES (1, '2022-01-01'); 
-- inserted as-is
SELECT * FROM test;
id ts
1 2022-01-01
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage