J'ai une table Oracle avec une séquence et une gâchette à une colonne automatique.
Maintenant, je veux faire un insert. Normalement, je devrais écrire: mais je veux juste insérer un enregistrement sans valeurs par défaut. Comment faire cela dans Oracle? P> `Mysql`: INSERT INTO table () VALUES ()
`Mssql`: INSERT INTO table default VALUES
`Oracle:` INSERT INTO table (column1, column2,...) VALUES (default, default,...)
5 Réponses :
Est-ce le seul moyen? Je dois énumérer toutes les colonnes? P> blockQuote>
Oui. Et c'est une bonne pratique pour Toujours Strard> Spécifiez toutes les colonnes d'une instruction INSERT que vous souhaitez fournir des valeurs. P>
Non, vous n'avez pas avoir i> à lister toutes les colonnes i>.
INSERT INTO table (column1) VALUES (default); The rest will be defaulted!
dans Oracle, vous n'avez pas à spécifier les colonnes, mais que ce n'est pas le cas, vous permettra d'introduire des bogues comme et lorsque votre définition de table change. P>
Vous pouvez insérer avec: p>
Insérer dans les valeurs T (valeur1, valeur2, valeur3); p>
Ceci suppose que le tableau T a trois colonnes p>
Il est bien meilleur et soutient pour insérer avec: p>
Insérer dans les valeurs T (colonne1, colonne2, colonne3) (valeur1, valeur2, valeur3); p>
Je n'utiliserais pas PL / SQL (si vous pouvez l'aider) à mesure que vous introduisez la commutation de contexte de PL / SQL sur SQL, puis de retour à PL / SQL. P>
J'ai raté cette partie sur la première lecture:
J'ai une table Oracle avec une séquence et une gâchette à l'autocrampe une colonne. P> BlockQuote>
Donc, je suppose qu'il existe sur une colonne PK peuplée à l'aide de la séquence et les autres ont tous des valeurs par défaut. Étant donné que je ferais ceci: p>
xxx pré> La gâchette remplacera la valeur null (et si elle ne fait pas pour une raison quelconque, l'insert échouera); et les autres colonnes seront remplacées à l'aide des valeurs par défaut. P> p>
Vous pouvez ajouter un NULL code> sur le PK, puis l'insertion serait
Insert dans la table (PK_COLUMN) (par défaut) code>.
Il y a Un seul case strong> où vous n'avez pas besoin de spécifier des colonnes dans Oracle et que vous insérez des lignes avec des valeurs spécifiées pour toutes les colonnes et celle aussi dans la même séquence que la définition de la définition de tableau. Dans tous les autres cas, il faut spécifier la liste de colonnes. Exemple: p> note note 2ème instruction d'insertion -> premier paramètre '2' est fourni sous forme de chaîne et d'attente Numéro dans la colonne ID. Ici, le casting et l'insertion nécessaires 2 dans la colonne ID. Mais l'utilisateur a peut-être souhaité insérer '2' dans la colonne Nom et 1 comme ID. Avec la spécification de la liste de colonnes, les oracles nous aide à éviter de telles erreurs. P> Il y aura rarement n'importe quelle situation maintenant un jour où vous n'avez pas besoin de spécifier la liste des colonnes, car presque toutes les tables créées ont principalement une incrémentation automatique Colonne d'identification unique qui est automatiquement remplie via la gâchette ou à cause de identité Colonnes et vous fournissez des valeurs de repos des colonnes que signifie que la liste des colonnes doit être fournie sinon elle entraînera une erreur. p> Si cet identifiant unique est généré et inséré par une application. généré dans une application Java via une génération de nombres aléatoires ou hibernate puis comme toute la colonne sera insérée, la liste des colonnes pourrait être évitée. p> p>