es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo agregar una columna SUPER a una tabla existente de AWS Redshift?

OBJETIVO

  • Me gustaría agregar una columna SUPER Redshift a una tabla Redshift existente.
  • Necesito que esta columna almacene datos JSON.

CÓDIGO

Así es como normalmente agregaría una nueva columna.

ALTER TABLE products
ADD COLUMN created_at NOT NULL;

1. Intentó

CREATE TABLE temp<em>test</em>persons (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);

ALTER TABLE temp<em>test</em>persons ADD COLUMN newSuperColumn SUPER NOT NULL; 

Error al ejecutar la consulta: ALTER TABLE ADD COLUMN definido como NOT NULL debe tener una expresión predeterminada no nula

Soluciones revisadas

  • https://stackoverflow.com/questions/17101918/alter-column-data-type-in-amazon-redshift
  • https://stackoverflow.com/questions/30377165/aws-redshift-add-identity-column-to-existing-table
  • https://stackoverflow.com/questions/38309840/adding-column-to-existing-tables
  • https://stackoverflow.com/questions/26417461/add-dynamic-column-to-existing-mysql-table
  • https://stackoverflow.com/questions/55271239/sqlalchemy-how-to-add-column-to-existing-table
  • https://stackoverflow.com/questions/5337182/adding-columns-to-an-existing-table
  • https://stackoverflow.com/questions/63667701/add-column-to-existing-table-postgres
  • https://stackoverflow.com/questions/28052368/how-to-add-not-null-unique-column-to-existing-table
  • https://stackoverflow.com/questions/21284026/adding-columns-to-existing-csv-file-using-super-csv
  • https://stackoverflow.com/questions/41143741/ucanaccess-add-column-to-existing-table
  • https://stackoverflow.com/questions/54886271/adding-columns-to-existing-redshift-table
  • https://stackoverflow.com/questions/58553497/how-to-add-column-to-existing-table-in-laravel
  • https://stackoverflow.com/questions/63394107/add-column-to-existing-table-in-rds
  • https://stackoverflow.com/questions/46194442/oracle-add-column-to-existing-table
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución
    Después de revisar posibles soluciones, descubrí que la sintaxis correcta para agregar una supercolumna en Redshift es la siguiente:

    ALTER TABLE nombre_tabla 
    ADD COLUMN nombre_columna tipo_dato SUPER; 
    

    Sin embargo, cuando la supercolumna se define como NOT NULL, debe tener una expresión de valor predeterminado que no sea nula, la cual se puede establecer como:

    ALTER TABLE nombre_tabla 
    ADD COLUMN nombre_columna tipo_dato SUPER NOT NULL DEFAULT valor_predeterminado; 
    

    Por lo tanto, para agregar una supercolumna de Redshift a una tabla existente y almacenar datos JSON, el código se verá así:

    ALTER TABLE tabla_existente 
    ADD COLUMN columna_json JSON SUPER NOT NULL DEFAULT '{}' ;
    

    Esto agregará una nueva columna llamada columna_json a una tabla existente llamada tabla_existente, y solo aceptará valores JSON y no puede ser nula. En casos en que la columna esté vacía, se le asignará un valor predeterminado de ‘{}’.

Comments are closed.