Difference between revisions of "FR/Documentation/HSQLDB Guide/ChangeLog1.8.0"
(→Roles) |
(→Manipulation de colonne) |
||
Line 58: | Line 58: | ||
=== Manipulation de colonne === | === Manipulation de colonne === | ||
+ | Support pour les conversions de types, <font color="red">'''nullability and identity attributes of a column'''</font> | ||
− | + | ALTER TABLE <NomDeTable> ALTER [COLUMN] <NomDeColonne> <DefinitionDeColonne> | |
− | + | <DefinitionDeColonne> a la même syntaxe que la définition de colonne normale. La nouvelle définition de colonne remplace l'ancienne, il est donc possible d'ajouter/supprimer une expression DEFAULT, une contrainte NOT NULL, ou une définition IDENTITY. Il n'est pas possible de changer la clé primaire avec cette commande. | |
− | + | * La colonne doit déjà être une colonne PK (PK = Primary Key = Clé Primaire) pour accepter une définition IDENTITY. | |
+ | * Si la colonne est déjà une colonne IDENTITY et qu'il n'y a pas de définition IDENTITY, l'attribut IDENTITY existant est supprimé. | ||
+ | * L'expression par défaut sera celui de la nouvelle définition, ce qui signifie qu'une valeur par défaut existante peut être supprimée par omission, ou qu'une nouvelle valeur par défaut peut être ajoutée. | ||
+ | * L'attribut NOT NULL sera celui de la nouvelle définition, comme ci-dessus. | ||
+ | * Selon le type de conversion, la table doit être vide pour que la commande fonctionne. Elle fonctionne en général toujours quand la conversion est possible et les valeurs individuelles existantes peuvent toutes être converties. | ||
− | + | On utilise une syntaxe différente pour changer la prochaine valeur d'une colonne IDENTITY : | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ALTER TABLE <table name> ALTER [COLUMN] <column name> RESTART WITH <n> | |
− | + | === Ajouter ou supprimer des clés primaires === | |
− | + | Il est maintenant possible d'ajouter ou de supprimer une clé primaire. | |
− | + | Une clé primaire existante à supprimer ne doit pas être référencée dans une contrainte de clé externe (c.a.d. pas de liaisons avec une autre table). Si une table a une colonne IDENTITY, supprimer une clé primaire supprimera les attributs d'identité de la colonne mais préservera les données. | |
− | + | Lors de l'ajout d'une clé primaire, une contrainte NOT NULL est automatiquement ajoutée aux définitions de colonne. Les données de la table pour les colonnes d'une clé primaire nouvellement déclarée ne doivent pas contenir de valeurs nulles. | |
− | + | ALTER TABLE <name> ADD CONSTRAINT <cname> PRIMARY KEY(collist); | |
− | + | ALTER TABLE <name> DROP CONSTRAINT <cname>; | |
− | + | ALTER TABLE <name> DROP PRIMARY KEY; // alternative syntax | |
− | + | ||
− | ALTER TABLE <name> ADD CONSTRAINT <cname> PRIMARY KEY(collist); | + | |
− | ALTER TABLE <name> DROP CONSTRAINT <cname>; | + | |
− | ALTER TABLE <name> DROP PRIMARY KEY; // alternative syntax | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | === SIZE ENFORCEMENT === | ||
The database property sql.enforce_strict_size=true has now a wider effect. | The database property sql.enforce_strict_size=true has now a wider effect. |
Revision as of 23:40, 24 March 2009
Contents
HSQLDB 1.8.0 Historique des changements
Le développement de la version 1.8.0 a commencé vers le milieu 2004 avec pour but de sortir la nouvelle version en 2005. La fonctionnalité principale prévue pour cette version était la capacité d'être utilisé par OpenOffice.org 2.0 comme moteur de base de données par défaut. Les versions candidates commencèrent à apparaitre en Janvier, jusqu'à la RC10 parue en Mai. Plusieurs commandes SQL, nouvelles ou améliorées, ont été introduites et de nouvelles capacités telles que la prise en charge de multiples objets de schéma dans chaque base de données, database-wide collations et les objets SQL ROLE ont été ajoutées. Des parties de persistence engine ont été ré-écrites pour une meilleure performance et des opérations de longue durée d'exécution en ligne.
J'aimerai remercier tous les développeurs, testeurs et utilisateurs qui ont contribué à ce travail.
June 2005
Fred Toussi
Maintainer, HSQLDB Project http://hsqldb.sourceforge.net
Améliorations SQL
Schémas
Prise en charge des schémas SQL. Chaque base de données peut contenir de multiples schémas. Les commandes suivantes ont été introduites :
CREATE SCHMEA <nom du schéma> AUTHORIZATION DBA DROP SCHEMA <nom du schéma> {CASCADE | RESTRICT} ALTER SCHEMA <nom du schéma> RENAME TO <new name> SET SCHEMA <nom du schéma>
Initialement, le schéma d'utilisateur par défaut est créé avec le nom PUBLIC. Ce schéma peut être renommé ou supprimé. Quand le dernier schéma d'utilisateur a été supprimé, un schéma vide par défaut doté du nom PUBLIC est recréé.
Les tables système appartiennent toutes à INFORMATION_SCHEMA. Pour accéder aux tables systèmes, soit SET SCHEMA ou INFORMATION_SCHEMA doivent être utilisés une fois ou il doit y être fait référence par des noms pleinement spécifiés, par exemple INFORMATION_SCHEMA.SYSTEM_TABLES.
D'une façon similaire tous les objets de la base de données indépendamment des colonnes peuvent être référencés par des noms de schéma explicites (pleinement qualifiés).
La commande CREATE SCHEMA peut être suivie d'autres commandes CREATE et GRANT sans insertion de point-virgule. Toutes ces commandes sont exécutées dans le contexte du schéma nouvellement créé. Un point-virgule termine une commande étendue CREATE SCHEMA.
Roles
Prise en charge des roles du standard SQL.
CREATE ROLE <role name> GRANT ... TO <role name> REVOKE ... FROM <role name> GRANT <role name> TO <user name> DROP ROLE <role name>
Les commandes GRANT et REVOKE sont similaires à celles utilisées pour accorder des permissions de différents objets aux objets de l'utilisateur. Un role peut alors être accordé à ou retiré à différents utilisateurs, simplifiant ainsi la gestion des permissions.
Tables temporaires globales
L'implémentation de tables temporaires a changé pour se conformer aux standards SQL.
La définition d'une table GLOBAL TEMPORARY perdure avec la base de données. Quand une session (connexion JDBC) est démarrée, une instance vide de la table est créée. Une table temporaire peut être créée avec (valeur par défaut) ON COMMIT DELETE ROWS ou ON COMMIT PRESERVE ROWS ajouté à la définition de la table. Avec ON COMMIT PRESERVE ROWS, le contenu de la table n'est pas vidé quand la session est validée. Dans les deux cas, le contenu est nettoyé quand la session est fermée.
Commandes de manipulation de schéma
Plusieurs commandes de manipulation de schéma ont été améliorées.
Les tables, vues et séquences peuvent être supprimées avec l'option CASCADE. Cette option supprime directement (silently) toutes les tables et vues faisant référence à l'objet de base de données visé.
DROP TABLE