Columnas generadas en SQL
Una columna cuyo valor es una fórmula no puede contradecir a las columnas que lee.
CREATE TABLE line_items (
id INTEGER PRIMARY KEY,
quantity INTEGER NOT NULL,
unit_price REAL NOT NULL,
total REAL GENERATED ALWAYS AS (quantity * unit_price) STORED,
sku_upper TEXT GENERATED ALWAYS AS (UPPER(sku)) VIRTUAL,
sku TEXT NOT NULL
);
INSERT INTO line_items (quantity, unit_price, sku)
VALUES (3, 19.99, 'ts-001');
Cómo funciona
VIRTUALcalcula al leer y no cuesta almacenamiento;STOREDlo escribe.- Nunca insertas en una columna generada — el motor la llena.
- Una columna generada almacenada se puede indexar como cualquier otra.
Palabras clave y builtins usados aquí
ASCREATEGENERATEDINSERTINTEGERINTOKEYNOTNULLPRIMARYREALTABLETEXTUPPERVALUES
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 324
- Tokens
- 71
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 50 segundos.
Paso 5 de 5 en Restricciones; paso 5 de 16 en Esquema y restricciones.