Comment mettre à jour la colonne des enregistrements dans la base de données?
Je suis en train de mettre à jour les enregistrements dans une colonne dans la base de données. Mes codes sont comme ci-dessous:
curs = conn.cursor()
statement='SELECT column FROM table'
curs.execute(statement)
curs.execute("INSERT INTO table VALUES (4, 'Five')")
Dans ma compréhension, la 4ème ligne de la colonne doit être mis à jour à 'Cinq'. Après j'ai couru, il n'y a pas d'erreur, mais aucune mise à jour ni. Il doit y avoir quelque chose de mal dans mes codes, ou je suis absent quelque chose d'important.
Que faire si je veux mettre à jour l'ensemble de la colonne? Merci d'avance pour tout éclaircissement.
OriginalL'auteur widget | 2011-03-10
Vous devez vous connecter pour publier un commentaire.
bien que vous voulez faire certain que vous essayez de mettre à jour TOUTES les lignes pour que les nouvelles valeurs de la colonne, sinon vous devez ajouter
Cette syntaxe (en raison de la redoutable backticks) ne fonctionne qu'avec MySQL. Il suffit de les enlever et vous disposez d'un standard conforme instruction qui sera exécutée avec un SGBD
OriginalL'auteur FatherStorm
Selon la version de SQL, vous êtes à l'aide de MSSQL, Oracle, MySQL, vous aurez besoin d'une syntaxe différente. On dirait que vous êtes en utilisant MSSQL sorte que vous aurez envie de commencer par cela:
Mais vous ne pouvez pas dire ensemble de la ligne 4 à la valeur de X, SQL permet de ne pas garder une ligne de jeu de nombre comme une feuille de calcul Excel. Vous pouvez ajouter une colonne int et appeler quelque chose comme PK_tablename et mettre la clé primaire de cette table. Ensuite, vous pouvez écrire une déclaration de ce genre et il sera toujours mise à jour de la ligne correcte:
Je suggère la lecture sur les Clés Primaires dans votre SQL aider.
OriginalL'auteur Matt Lind
Un
insert
ne pas mettre à jour les valeurs dans une base de données, il ajoute des enregistrements. Vous devez utiliser unUPDATE
déclaration.OriginalL'auteur Miyagi Coder
Vous utilisez un
INSERT
déclaration, pas unUPDATE
déclaration. Comme d'autres l'ont dit, cela permettra d'insérer un enregistrement plutôt que de les mettre à jour.Il y a essentiellement 4 opérations de base pour de simples requêtes SQL:
JOIN
tables, définir unWHERE
clause, etc. pour manipuler l'affichage des données. C'est le plus sûr de l'opération (bien qu'un mauvaisSELECT
peuvent apporter les performances d'un serveur à genoux).WHERE
clause. Si vous n'incluez pas un, vous allez mettre à jour chaque ligne dans la table. En règle générale, vous souhaitez tester votreWHERE
clause dans unSELECT
rapport d'abord à faire absolument sûr que vous êtes à la mise à jour de seulement les lignes que vous souhaitez mettre à jour.WHERE
clause il va supprimer tous lignes dans la table. Testez votreWHERE
clause assurez-vous que vous êtes à la suppression de seulement les lignes que vous souhaitez supprimer.De l'apparence de votre
INSERT
déclaration, il semble que vous essayez de mettre à jour une ligne basée sur une touche (le numéro 4). Fondée sur l'absence d'erreur, il ne semble pas réellement être une clé. Si c'était le tableau de la clé, il aurait renvoyé un message d'erreur indiquant que vous ne pouvez pas insérer une ligne de clé en double.Il semble (sur la base du peu d'informations dans la question, naturellement) que ce que vous voulez, c'est quelque chose le long des lignes de:
Plus d'informations peuvent être trouvées ici, parmi de nombreux autres endroits.
Quels sont les noms réels de la table et de la colonne? Si la table est en effet appelé "tableau", puis essayez de l'identifier comme:
UPDATE [table] SET [column] ...
à la place. Si le nom de quelque chose de conflits avec un mot réservé, l'envelopper dans des crochets. (Les crochets sont également utiles lorsque le nom de quelque chose qui comprend les espaces.) Cela peut varier pour différentes bases de données, bien sûr. Je suis en train de penser en termes de MS SQL.le nom de la table n'est pas de la table. ils ont leurs propres noms. j'ai essayé le [], mais la syntaxe non valide est encore à venir.
Avez-vous remplacer le "tableau" dans la requête avec le nom réel de la table? Même avec le nom de la colonne(s)? Désolé si c'est une question stupide, mais il est souvent difficile de dire combien d'un début, quelqu'un a peut-être ici. Montrer votre requête, s'il vous plaît.
oui j'ai remplacé les deux. la question complète est: mise à JOUR tide_data ENSEMBLE value_realnum ='cinq'
OriginalL'auteur David
J'ai résolu mon problème en utilisant les codes ci-dessous:
Tks pour vous aider
OriginalL'auteur widget