Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Check-Constraint vs. Trigger - was ist performanter? (https://www.delphipraxis.net/119564-check-constraint-vs-trigger-ist-performanter.html)

DeddyH 28. Aug 2008 12:12

Datenbank: Firebird • Version: 2.0 • Zugriff über: FBLib

Check-Constraint vs. Trigger - was ist performanter?
 
Ich möchte in einem Feld keine Strings zulassen, die leer sind oder nur aus Leerzeichen bestehen. Nun könnte ich mir eine Check-Constraint definieren oder das über einen Trigger abfangen. Der Trigger hätte den Vorteil, dass ich im Fehlerfall eine selbst definierte Exception werfen könnte. Aber wie sieht das im Hinblick auf die Performance aus?

Danke schonmal fürs Lesen.

Elvis 28. Aug 2008 12:32

Re: Check-Constraint vs. Trigger - was ist performanter?
 
Ich habe es nicht getestet, aber Checks haben den Vorteil, dass du sie bereits in einer Domain definieren kannst.
Du kannst dir also einen Feldtypen bauen, der nicht "leer" sein darf, und kein weiterer Gedanke ist nötig um es auch an anderen Stellen nutzen zu können.

btw: Seit Firebird 2.1 können Domains auch für SProc-Parameter genutzt werden. :-)

DeddyH 28. Aug 2008 12:40

Re: Check-Constraint vs. Trigger - was ist performanter?
 
Danke Robert für die Antwort, aber ich habe nicht ganz verstanden, wie ich so eine Domain deklarieren müsste.

SQL-Code:
CREATE DOMAIN Wuppdi AS VARCHAR(50) CHECK (CHAR_LENGTH(TRIM(VALUE)) > 0)
So in etwa?

Elvis 28. Aug 2008 13:14

Re: Check-Constraint vs. Trigger - was ist performanter?
 
Fast:
SQL-Code:
create domain Wuppdi as
  VarChar(50) not null
  check (Trim(Value) <> '');

DeddyH 28. Aug 2008 13:20

Re: Check-Constraint vs. Trigger - was ist performanter?
 
Herzlichen Dank, probiere ich heute Abend sofort aus :cheers:


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

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