Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Ein Default für ein Feld soll aus einer select Abfrage kommen (https://www.delphipraxis.net/212642-ein-default-fuer-ein-feld-soll-aus-einer-select-abfrage-kommen.html)

BlueStarHH 9. Mär 2023 11:44

Datenbank: Firebird • Version: 3.x • Zugriff über: IBDAC

Ein Default für ein Feld soll aus einer select Abfrage kommen
 
Ich möchte das hier machen:

Code:
ALTER TABLE PROTOKOLL ALTER COLUMN BENUTZERID
SET DEFAULT select rdb$get_context('USER_SESSION', 'BenutzerID') from rdb$database
Und erhalte diesen Fehler:
Code:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, column 13.
select.
Wie klappt das? Kann ich als DEFAULT überhaubt select-Statements eintragen?

Uwe Raabe 9. Mär 2023 12:23

AW: Ein Default für ein Feld soll aus einer select Abfrage kommen
 
Vielleich so:
SQL-Code:
ALTER TABLE PROTOKOLL ALTER COLUMN BENUTZERID SET DEFAULT CURRENT_USER


Edit: Ich sehe gerade, es soll die BenutzerID sein. Dann wird das wohl nichts.

BlueStarHH 9. Mär 2023 12:26

AW: Ein Default für ein Feld soll aus einer select Abfrage kommen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1519685)
Edit: Ich sehe gerade, es soll die BenutzerID sein. Dann wird das wohl nichts.

Also ein select im Default geht nicht? Ich muss an anderen Stellen auch Default-Werte eintragen, die einfach aus anderen Tabellen kommen. Das wäre dann auch nicht möglich?

Papaschlumpf73 9. Mär 2023 12:27

AW: Ein Default für ein Feld soll aus einer select Abfrage kommen
 
Von Firebird habe ich leider keine Ahnung. Wenn das Teil aber Trigger unterstützt, könnte man statt eines Default-Wertes einen Insert-Trigger mit dem Select zur Benutzer-ID machen.

Uwe Raabe 9. Mär 2023 12:29

AW: Ein Default für ein Feld soll aus einer select Abfrage kommen
 
Nein, das geht nicht. Die Syntax ist da ziemlich eindeutig:

Zitat:

ALTER TABLE tablename ALTER [COLUMN] colname SET DEFAULT <default>

<default> ::= literal-value | context-variable | NULL

dataspider 9. Mär 2023 12:53

AW: Ein Default für ein Feld soll aus einer select Abfrage kommen
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1519687)
Von Firebird habe ich leider keine Ahnung. Wenn das Teil aber Trigger unterstützt, könnte man statt eines Default-Wertes einen Insert-Trigger mit dem Select zur Benutzer-ID machen.

Das geht und würde ich so machen...

Frank

BlueStarHH 9. Mär 2023 13:15

AW: Ein Default für ein Feld soll aus einer select Abfrage kommen
 
Zitat:

Zitat von dataspider (Beitrag 1519689)
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1519687)
Von Firebird habe ich leider keine Ahnung. Wenn das Teil aber Trigger unterstützt, könnte man statt eines Default-Wertes einen Insert-Trigger mit dem Select zur Benutzer-ID machen.

Das geht und würde ich so machen...

Danke an alle. So mache ich es jetzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz