SQLite: sentencia ALTER TABLE

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

SQLite: sentencia ALTER TABLE

Este tutorial de SQLite explica cómo usar SQLite sentencia ALTER TABLE Agregue columnas, modifique columnas, elimine columnas, cambie el nombre de las columnas o cambie el nombre de las tablas (con sintaxis y ejemplos).

describir

La declaración ALTER TABLE de SQLite se usa para agregar, modificar o quitar/quitar columnas en una tabla. La declaración ALTER TABLE de SQLite también se usa para cambiar el nombre de las tablas.

Agregar columnas a la tabla

sintaxis

La sintaxis para agregar una columna a una tabla en SQLite (usando la instrucción ALTER TABLE) es:

ALTER TABLE table_name
  ADD new_column_name column_definition;

table_name El nombre de la tabla a modificar. new_column_name El nombre de la nueva columna que se agregará a la tabla. column_definition El tipo de datos y la definición de la columna (NULL o NOT NULL, etc.).

ejemplo

Veamos un ejemplo que muestra cómo usar la instrucción ALTER TABLE para agregar una columna a una tabla de SQLite.

Por ejemplo:

ALTER TABLE employees
  ADD status VARCHAR;

Este ejemplo de SQLite ALTER TABLE agregará una columna denominada estado a la tabla de empleados. Se creará como una columna que permite valores NULL.

Modificar una columna en una tabla

No puede usar la instrucción ALTER TABLE para modificar columnas en SQLite. En su lugar, debe cambiar el nombre de la tabla, crear una nueva tabla y copiar los datos en la nueva tabla.

sintaxis

La sintaxis para modificar una columna en una tabla en SQLite es:

PRAGMA foreign_keys=off;

BEGIN TRANSACTION;

ALTER TABLE table1 RENAME TO _table1_old;

CREATE TABLE table1 (
( column1 datatype [ NULL | NOT NULL ],
  column2 datatype [ NULL | NOT NULL ],
  ...
);

INSERT INTO table1 (column1, column2, ... column_n)
  SELECT column1, column2, ... column_n
  FROM _table1_old;

COMMIT;

PRAGMA foreign_keys=on;

ejemplo

Veamos un ejemplo que muestra cómo modificar una columna en una tabla de SQLite.

Por ejemplo, si tenemos una tabla de empleados con una columna llamada last_name definida como tipo de datos CHAR:

CREATE TABLE employees
( employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
  last_name CHAR NOT NULL,
  first_name VARCHAR,
  hire_date DATE
);

Queremos cambiar el tipo de datos del campo last_name a VARCHAR, podemos hacer lo siguiente:

PRAGMA foreign_keys=off;

BEGIN TRANSACTION;

ALTER TABLE employees RENAME TO _employees_old;

CREATE TABLE employees
( employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
  last_name VARCHAR NOT NULL,
  first_name VARCHAR,
  hire_date DATE
);

INSERT INTO employees (employee_id, last_name, first_name, hire_date)
  SELECT employee_id, last_name, first_name, hire_date
  FROM _employees_old;

COMMIT;

PRAGMA foreign_keys=on;

Este ejemplo cambia el nombre de nuestra tabla de empleados existente a _employees_old. Luego creará la nueva tabla de empleados con el campo last_name definido como tipo de datos VARCHAR. Luego inserta todos los datos de la tabla _employees_old en la tabla de empleados.

eliminar columna de la tabla

Las columnas de una tabla no se pueden eliminar mediante la sentencia ALTER TABLE. En su lugar, debe cambiar el nombre de la tabla, crear una nueva tabla y copiar los datos en la nueva tabla.

sintaxis

La sintaxis para DROP A COLUMN en una tabla en SQLite es:

PRAGMA foreign_keys=off;

BEGIN TRANSACTION;

ALTER TABLE table1 RENAME TO _table1_old;

CREATE TABLE table1 (
( column1 datatype [ NULL | NOT NULL ],
  column2 datatype [ NULL | NOT NULL ],
  ...
);

INSERT INTO table1 (column1, column2, ... column_n)
  SELECT column1, column2, ... column_n
  FROM _table1_old;

COMMIT;

PRAGMA foreign_keys=on;

ejemplo

Veamos un ejemplo que muestra cómo colocar una columna en una tabla de SQLite.

Por ejemplo, si tenemos una tabla de empleados definida de la siguiente manera:

CREATE TABLE employees
( employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
  last_name VARCHAR NOT NULL,
  first_name VARCHAR,
  hire_date DATE
);

Si queremos eliminar la columna llamada fecha_alquiler, podemos hacer lo siguiente:

PRAGMA foreign_keys=off;

BEGIN TRANSACTION;

ALTER TABLE employees RENAME TO _employees_old;

CREATE TABLE employees
( employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
  last_name VARCHAR NOT NULL,
  first_name VARCHAR
);

INSERT INTO employees (employee_id, last_name, first_name)
  SELECT employee_id, last_name, first_name
  FROM _employees_old;

COMMIT;

PRAGMA foreign_keys=on;

Este ejemplo cambia el nombre de nuestra tabla de empleados existente a _employees_old. Luego creará una nueva tabla de empleados con el campo de fecha de contratación eliminado. Luego inserta todos los datos de la tabla _employees_old (excluyendo el campo de fecha de contratación) en la tabla de empleados.

Cambiar el nombre de la columna en la tabla

No puede usar la declaración ALTER TABLE para cambiar el nombre de las columnas en SQLite. En su lugar, debe cambiar el nombre de la tabla, crear una nueva tabla y copiar los datos en la nueva tabla.

sintaxis

La sintaxis para cambiar el nombre de una columna en una tabla en SQLite es:

PRAGMA foreign_keys=off;

BEGIN TRANSACTION;

ALTER TABLE table1 RENAME TO _table1_old;

CREATE TABLE table1 (
( column1 datatype [ NULL | NOT NULL ],
  column2 datatype [ NULL | NOT NULL ],
  ...
);

INSERT INTO table1 (column1, column2, ... column_n)
  SELECT column1, column2, ... column_n
  FROM _table1_old;

COMMIT;

PRAGMA foreign_keys=on;

ejemplo

Veamos un ejemplo que muestra cómo cambiar el nombre de una columna en una tabla de SQLite.

Por ejemplo, si tenemos una tabla de empleados definida de la siguiente manera:

CREATE TABLE employees
( employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
  last_name VARCHAR NOT NULL,
  first_name VARCHAR,
  hire_date DATE
);

Queremos cambiar el nombre del campo de fecha de contratación a fecha de inicio, podemos hacer lo siguiente:

PRAGMA foreign_keys=off;

BEGIN TRANSACTION;

ALTER TABLE employees RENAME TO _employees_old;

CREATE TABLE employees
( employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
  last_name VARCHAR NOT NULL,
  first_name VARCHAR,
  start_date DATE
);

INSERT INTO employees (employee_id, last_name, first_name, start_date)
  SELECT employee_id, last_name, first_name, hire_date
  FROM _employees_old;

COMMIT;

PRAGMA foreign_keys=on;

Este ejemplo cambia el nombre de nuestra tabla de empleados existente a _employees_old. A continuación, creará una nueva tabla de empleados con un campo de fecha de contratación denominado fecha de inicio. Luego inserta todos los datos de la tabla _employees_old en la tabla de empleados.

renombrar tabla

sintaxis

Para cambiar el nombre de una tabla, la sintaxis de SQLite ALTER TABLE es:

ALTER TABLE table_name
  RENAME TO new_table_name;

table_name La tabla a la que se va a cambiar el nombre. new_table_name El nombre de la nueva tabla.

ejemplo

Veamos un ejemplo que muestra cómo usar la instrucción ALTER TABLE para cambiar el nombre de una tabla en SQLite.

Por ejemplo:

ALTER TABLE employees
  RENAME TO staff;

Este ejemplo de ALTER TABLE cambia el nombre de la tabla de empleados a personal.

(Visited 84 times, 1 visits today)