Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/05/2006, 11h10   #1
Invité de passage
 
Inscription : mai 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 21
Points : 4
Points : 4
Par défaut [PAMC] création de clé primaire auto incrémentée

Voici mon probléme: j'aimerai generer des clés primaires auto incrémenté.
Mais je ne sait absolument pas comment faire dans sybase. J'ai réussi a trouver une option auto_increment dans sybase mais il ne genére pas le bon code sql.
Une solution bien evidemment est de modifier le script sql mais bon ce n'est pas propre et il doit surement y' avoir une solution dans sybase!

create table UNITE
(
ID_UNITE int not null,
UNITE varchar(20) not null,
primary key (ID_UNITE)

auto_increment = ID_UNITE;)

Dans cette table par exemple je voudrai que le champ id_unite soit autoincrémenté mais comment faire?
nic413 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 14h58   #2
Membre du Club
 
Inscription : décembre 2005
Messages : 48
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 48
Points : 48
Points : 48
Bonjour,
Un post de avant-hier traite cette question sur le même forum.

En complément, voici un autre exemple avec la possibilité IDENTITY
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
EXEC sp_addtype t_i_identity_12, "numeric(12)", "IDENTITY"
EXEC sp_addtype t_i_fk_n, "numeric(12)", "NULL" 
EXEC sp_addtype t_c_name_64, "varchar(64)", "NOT NULL"
CREATE TABLE auth (
pk t_i_identity_12 CONSTRAINT pk_auth PRIMARY KEY NONCLUSTERED,
name t_c_name_64
)
CREATE TABLE book (
pk t_i_identity_12 CONSTRAINT pk_book PRIMARY KEY NONCLUSTERED,
fk_auth t_i_fk_n CONSTRAINT ri_book_auth REFERENCES auth,
title t_c_name_64
)
DECLARE @fk_auth t_i_fk_n
begin tran
INSERT auth(name) VALUES ("toto")
SELECT @fk_auth = @@identity
INSERT book(fk_auth,title) VALUES (@fk_auth,"toto_book_1")
INSERT book(fk_auth,title) VALUES (@fk_auth,"toto_book_2")
commit tran
Et voici encore un exemple avec la possibilité new_id (compatible avec MS SQL Server)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
EXEC sp_addtype t_c_newid, "char(36)", "NOT NULL"
 
CREATE DEFAULT d_newid AS newid()
 
EXEC sp_bindefault "d_newid", t_c_newid
 
CREATE TABLE book (
pk t_c_newid CONSTRAINT pk_book PRIMARY KEY,
title varchar(64)
)
INSERT INTO book(title) VALUES ("Le rouge et le noir")
SELECT * FROM book
pk title 
------------------------------------ ---------------------------------------------------------------- 
0a0dd4ec01f94bdabf23cd2b2fc7720d Le rouge et le noir
dbafranck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 15h18   #3
Invité de passage
 
Inscription : mai 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 21
Points : 4
Points : 4
En fait j'utilise sybase power amc, je sais modifier le code sql pour creer la base mais je ne trouve pas l'option qui permet de résoudre ce probléme via l'interface de power amc.
nic413 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2006, 16h46   #4
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Sous PowerAMC, le type doit bien être au niveau du MCD, le type "Séquentiel" dont l'abréviation est NO.

Ensuite, lors dela génération du MPD, il est modifié selon le type de SGBDR que vous utilisez:
  • pour ASA : integer default autoincrement
  • pour ASE : numeric identity
la génération devrait alors se faire correctement
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2006, 09h59   #5
Invité de passage
 
Inscription : mai 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 21
Points : 4
Points : 4
Merci beaucoup ça marche!
nic413 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 20h02   #6
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 72
Points : 19
Points : 19
Bonjour,

mais une fois qu'on veut faire les insert on fait comment ?
Merci
hynposat7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h22.


 
 
 
 
Partenaires

Hébergement Web