Hallo,
Unten ist die Prozedur, die Sie verwenden können,
BEGIN
ALTER TABLE Receipt DROP COLUMN Description;
END;
DECLARE
del_columns INTEGER;
BEGIN
SELECT COUNT(*)
INTO del_columns
FROM dba_tab_columns
WHERE OWNER = 'user_name'
AND table_name = 'Receipt'
AND column_name = 'Description'
IF(del_columns = 0)
THEN
EXECUTE IMMEDIATE 'ALTER TABLE Receipt DROP column Quantity, Date;
END IF;
END;
explination
- In der ersten beginnen Anweisung, Spalte Beschreibung
- Im zweiten gelöscht Anweisung, ein temporärer ganzzahliger Wert del_column in
deklariert
Von dem Systemtabelle, Tabellennamen und Spaltennamen wird als Bedingung erklärt und die Graf
Wenn die Zahl 0 angezeigt wird, dann Beschreibung Spalte nicht zur Verfügung und dann andere zwei andere Spalten werden gelöscht. Wenn Sie 1 zu bekommen, dann ist diese Spalte zur Verfügung und zwei weitere Spalten nicht
- Sie können auch all_tab_columns Tabelle in der where Bedingung verwenden gelöscht werden, die die Tabelle alle Namen bietet abgesehen davon, dass Benutzer sie es ist super user
- Stellen Sie sicher, dass Sie den Namen Ihres Besitzers in der Where-Bedingung angeben.
Ich weiß nicht genau, was Sie fragen. Es gibt keinen Befehl, der eine (vollständige) Spalte automatisch löscht, wenn Sie eine andere Spalte löschen (und das wird auch nie der Fall sein, da Sie dies leicht manuell tun können). Wenn Sie eine Säule fallen lassen, müssen Sie sie vollständig aus dem Tisch entfernen, meinen Sie das wirklich? Meinen Sie vielleicht, dass Sie die Zeile löschen möchten, wenn Sie die Zeile ändern (z. B. "null")? Oder möchten Sie vielleicht die Werte 'Quantity' und' Date' auch 'null' einstellen, wenn Sie' Description' auf 'null' setzen? Vielleicht könnten Sie einige Beispieldaten hinzufügen, um zu beschreiben, was Sie zu tun versuchen. – Solarflare
Ich nehme an, dass Sie Menge und Datum automatisch auf Null setzen möchten, wenn Description auf Null gestellt wird, oder? Ich denke, [Trigger] (https://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000931.html) ist, was Ihnen helfen kann deine Aufgabe – siarheib