J'ai une table "MY_TABLE" dans Snowflake à laquelle je voudrais ajouter une colonne d'identité. J'ai essayé
ALTER TABLE "MY_TABLE"
ADD COLUMN primary_key int IDENTITY(1,1);
Mais ce retour
SQL compilation error: Cannot add column 'PRIMARY_KEY' with non-constant default to non-empty table 'MY_TABLE'.
Est-ce que ce n'est pas possible dans Snowflake ?
Pour essayer de contourner cette limitation, j'ai essayé de créer une version temporaire de la table
CREATE OR REPLACE TABLE "MY_TABLE_TEMP" LIKE "MY_TABLE"
ALTER TABLE "MY_TABLE_TEMP" ADD COLUMN primary_key int IDENTITY(1,1)
INSERT INTO "MY_TABLE_TEMP"
SELECT * FROM "MY_TABLE";
Mais maintenant je reçois l'erreur
SQL compilation error: Insert value list does not match column list expecting <x+1> but got <x>
Ce qui est logique, puisque je ne passe pas la clé primaire. À ce stade, il semble que je doive entrer manuellement la liste des x (ce qui est un nombre très élevé) noms de colonnes dans la requête sql, et je me demande donc si je ne m'y prends pas mal. Quelqu'un d'autre a-t-il rencontré un problème similaire ?