Ich habe ein Problem mit SQL in der Sprache 'plpgsql'.SQL-Trigger-Update und Einfügen
Die Frage ist, zuerst eine neue Spalte clean_phone in Kunden Tabelle hinzufügen. Verwenden Sie dann Trigger beim Einfügen und aktualisieren Sie, um die Funktion "clean_phone to random_string()" zu füllen. Hier ist was ich getan habe.
erstellen Sie eine neue Spalte
alter table customers
add clean_phone varchar(15);
Trigger
create or replace function clean_function()
returns trigger as
$$
begin
new.clean_phone = random_string();
return new;
end;
$$
language 'plpgsql';
drop trigger clean_phone on customers;
create trigger clean_phone
before update or insert
on customers
for each row
execute procedure clean_function();
Und final zeigen die Tabelle
select name,clean_phone from customers;
Das Problem, das ich habe, ist, nachdem ich den ganzen Code ausführen und das Ergebnis zeigen In der Spalte clean_phone wird immer noch nichts angezeigt. Also, wie könnte ich das beheben?
Sind Sie Einfügen oder irgendetwas in der Tabelle zu aktualisieren? Der Auslöser wird nur unter diesen Umständen aufgerufen. –
Ich versuche, alles einzufügen/zu aktualisieren, aber es zeigt Fehler, dass clean_phone nicht existiert – youlingjun0505
ERROR: Wert zu lang für Typ Zeichen variiert (15) SQL-Status: 22001 Kontext: PL/pgSQL Funktion clean_function() Zeile 3 bei Zuweisung – youlingjun0505