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 28/10/2003, 09h10   #1
Membre du Club
 
Inscription : novembre 2002
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 67
Points : 59
Points : 59
Par défaut [SYBASE] Insert sur view

Bonjour,

supposons une vue MY_VIEW et deux tables MY_TABLE_1 et MY_TABLE_2.

avec pour MY_TABLE_1

COLUMN_1
COLUMN_2
COLUMN_3

pour MY_TABLE_2

COLUMN_1
COLUMN_2
COLUMN_3

MY_TABLE_1 et MY_TABLE_2 ayant les meme structures et contenant les memes types de donnees (grosso modo MY_TABLE_2 contient des donnees qui ont ete deplacees depuis MY_TABLE_1)

MY_VIEW est une jointure de ces deux tables :

Code :
1
2
3
SELECT * FROM MY_TABLE_1
union
SELECT * FROM MY_TABLE_2
ma question concerne les ordres insert, update et delete.
Que se passe t'il si je fais un

insert into MY_VIEW (data_for_column_1, data_for_column_2, data_for_column_3)

Est ce possible et si oui sur quelle table va etre insere l'enregistrement ?

Et pour les autres ordres, j'ai cru comprendre dans la doc sybase que je ne pourrais en faire .

Merci d'avance
__________________
Java, JDBC, SQL, Oracle

Specialiste Kamehameha des blagues-boulets

Barman de la taverne
P'tit Jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 10h12   #2
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
comme son nom l'indique VIEW est une vue.

Or je n'ai jamais entendu parler de la possibilité de faire un insert sur une VIEW.
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 10h23   #3
Membre du Club
 
Inscription : novembre 2002
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 67
Points : 59
Points : 59
Hummm ma question n'est pas aussi bete qu'il y parait

voici un extrait de la documentation Sybase :

Adaptive Server Enterprise version 12
Réf. du document : 37926-01-1200-01
Dernière mise à jour : octobre 1999

Citation:
Les instructions insert ne sont pas autorisées dans les vues avec
jointures, créées avec distinct ou with check option.
J'admet que dans cette phrase je trouve une partie de mes reponses neanmoins il semble possible de faire des insert !

je reformule donc, est il donc impossible dans mon cas de faire un insert ou existe il une feinte ?
__________________
Java, JDBC, SQL, Oracle

Specialiste Kamehameha des blagues-boulets

Barman de la taverne
P'tit Jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 11h34   #4
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
la feinte est d'utiliser le trigger INSERT de la table TABLE1 qui va automatiquement faire le meme INSERT dans la table TABLE2 (petit truc à développer tout de meme).
Et on peut faire l'inverse pour un insert dans TABLE2.

Mais le soucis est que des que tu insert dans TABLE1, ca sera inséré systemétiquement dans TABLE2 et il sera impossible de contourner le trigger sans le supprimer puis le recréer.

Maintenant, l'idéal est de gérer ca via une procédure stockée avec toutes les colonnes en paramètre et l'insert sur chaque table.
De ce fait, tu gardes encore la possibilité de faire des insert indépendants à chaque table.
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2003, 12h21   #5
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
1) l'union dans la vue n'est possible que depuis Sybase ASE 12.5
2) la modification via une vue sur plusieurs tables requiert un certain nombre de contraintes, dont celle de pouvoir distinguer l'unicité de l'enregistrement modifié : ce n'est pas le cas avec un UNION
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h41.


 
 
 
 
Partenaires

Hébergement Web