Bonjour,
Pourriez-vous m'indiquer le Script Sql pour créer dynamiquement deux types de champs:
- Un Integer auto incrémenté
- Un Integer ne prenant des valeurs qu'entre deux bornes (Exemple entre 1 et 5)
Bonjour,
Pourriez-vous m'indiquer le Script Sql pour créer dynamiquement deux types de champs:
- Un Integer auto incrémenté
- Un Integer ne prenant des valeurs qu'entre deux bornes (Exemple entre 1 et 5)
Bonjour,
Quelle version de Firebird ? Important car dépendant de la version pour l'auto incrément il y a des solutions différentes
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Pour répondre à la question par MP
Avec Flamerobinj'ai téléchargé FlameRobin que je ne connaissais pas avant votre réponse à ma discussion.
Néanmoins, il ne me permet pas de faire grand chose. Y-a-t-il un truc à faire.
Par exemple je ne peux pas avoir le le DDL d'une Table.
clic droit sur la table pour obtenir le menu contextuel, selectionner ensuite properties, puis DDL
Pour obtenir le DDL de la table entière c'est pratiquement le même principe (clic droit/properties/DDL)
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 /********************* COLLATES **********************/ /********************* ROLES **********************/ /********************* UDFS ***********************/ /********************* FUNCTIONS ***********************/ /****************** SEQUENCES ********************/ CREATE SEQUENCE GEN_TEST_ID START WITH 1 INCREMENT BY 1; /******************** DOMAINS *********************/ /******************* PROCEDURES ******************/ /******************* PACKAGES ******************/ /******************** TABLES **********************/ CREATE TABLE TEST ( UNMEMO60 blob sub_type 1, UNBLOB10 blob sub_type 0, ID bigint GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL, CHKVAL smallint, CONSTRAINT PK_TEST_0 PRIMARY KEY (ID) ); /********************* VIEWS **********************/ /******************* EXCEPTIONS *******************/ /******************** TRIGGERS ********************/ SET TERM ^ ; CREATE TRIGGER TEST_BI FOR TEST ACTIVE BEFORE insert POSITION 0 AS DECLARE VARIABLE tmp DECIMAL(18,0); BEGIN IF (NEW.ID IS NULL) THEN NEW.ID = GEN_ID(GEN_TEST_ID, 1); ELSE BEGIN tmp = GEN_ID(GEN_TEST_ID, 0); if (tmp < new.ID) then tmp = GEN_ID(GEN_TEST_ID, new.ID-tmp); END END ^ SET TERM ; ^ /******************** DB TRIGGERS ********************/ /******************** DDL TRIGGERS ********************/ ALTER TABLE TEST ADD CONSTRAINT CHK_TEST_CHKVAL check (CHKVAL>0 AND CHKVAL<5); GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE ON TEST TO SYSDBA WITH GRANT OPTION GRANTED BY SYSDBA;
Attention la vue DDL n'est pas modifiable, ni quoique ce soit d'ailleurs, pour sélectionner ce que j'ai mis plus haut, il faut utiliser "Open SQL Editor"
Quant aux réponses aux questions initiales, elles sont dans le script fourni
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
J'ai fait Clic Droit sur la Table et quand je veux visualiser DDL, il me signale une Erreur
Accès violation - no RTTI Data
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Dans ce cas
fonctionne et permet de se passer des Générateurs/Sequence et Trigger
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part ID bigint GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL,
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Partager