Maison >base de données >tutoriel mysql >Comment puis-je supprimer une colonne d'une table SQLite ?

Comment puis-je supprimer une colonne d'une table SQLite ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-11 22:51:43936parcourir

How Can I Drop a Column from a SQLite Table?

Modifier la table SQLite : supprimer la colonne

Question :

Essayez de supprimer une colonne d'une table de base de données SQLite à l'aide de la requête suivante :

<code class="language-sql">ALTER TABLE table_name DROP COLUMN column_name;</code>

Cependant, il n’y a pas eu de succès. Quelle est la solution ?

Réponse :

Dans les versions antérieures à SQLite 3.35.0 (2021-03-12), la suppression directe de colonnes n'est pas prise en charge. Pour effectuer de tels changements, une approche plus sophistiquée est nécessaire :

  1. Créer une table temporaire : Copiez toutes les données pertinentes (par exemple les colonnes "a" et "b") dans la table temporaire :
<code class="language-sql">CREATE TEMPORARY TABLE t1_backup (a, b);
INSERT INTO t1_backup SELECT a, b FROM t1;</code>
  1. Supprimer le tableau d'origine : Supprimer le tableau avec les colonnes inutiles :
<code class="language-sql">DROP TABLE t1;</code>
  1. Recréez le tableau d'origine : Définissez un nouveau tableau qui ne contient pas les colonnes supprimées :
<code class="language-sql">CREATE TABLE t1 (a, b);</code>
  1. Transférer les données : Insérer les données de la table temporaire dans la table nouvellement créée :
<code class="language-sql">INSERT INTO t1 SELECT a, b FROM t1_backup;</code>
  1. Supprimer la table temporaire : Nettoyer en supprimant la table temporaire :
<code class="language-sql">DROP TABLE t1_backup;</code>
  1. Valider les modifications : Rendre les modifications permanentes :
<code class="language-sql">COMMIT;</code>

Mise à jour :

SQLite 3.35.0 et versions ultérieures prennent désormais directement en charge la clause DROP COLUMN, ce qui facilite la suppression de colonnes des tables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn