8
votes

Alter Table Ajouter une syntaxe de colonne dans SQL

J'essaie de modifier la table nommée entreprise, mais il affichera l'erreur xxx

ma syntaxe est xxx merci


1 commentaires

Le message d'erreur a entre parenthèses et la syntaxe que vous avez publiée n'est pas. Êtes-vous sûr que les deux sont en train de synchroniser? Et que utilisez-vous les SGBDM? Je suis à peu près sûr que vous devrez délimiter les noms de colonne contenant des espaces d'une manière ou d'une autre (probablement dans des citations)


4 Réponses :


3
votes

En outre, si votre table dispose de données, vous ne pouvez pas ajouter de colonnes NON NULL (et pour certains RDBMS, vous ne pouvez pas ajouter de colonnes NULL NULL, même s'il n'y a pas de données présentes dans le tableau).

Fournissez une valeur par défaut ou laissez la colonne nullable. Vous pouvez toujours remplir les nouvelles colonnes avec des données et modifier les colonnes pour ne pas être nulle par la suite.


0 commentaires

22
votes

Je viens d'essayer cette syntaxe fixe dans Postgressql et cela a fonctionné. Il n'y a aucun bref code> DataType, vous devrez donc utiliser quelque chose d'autre (peut-être Smallint ?) Si votre table contient des données, ce script échouera pour les raisons de la réponse de John.

ALTER TABLE company
ADD company_access_level int NOT NULL,
ADD workgroup_level int NOT NULL,
ADD "Company Logon URL" character varying NOT NULL,
ADD "Company Logoff URL" character varying NOT NULL


0 commentaires

0
votes

Désolé d'avoir ouvert une telle question, mais les conseils de l'une des réponses que vous ne pouviez pas ajouter qu'un NULL ne m'a pas coûté un peu de problèmes. Vous peut em> ajouter une colonne NON NULL à une table avec des données, la seule restriction est que vous devez également fournir une valeur par défaut. Testé avec Sybase, Postgres et MySQL. Donc, l'exemple ci-dessus devient:

ALTER TABLE company
 ADD company_access_level int default 'not set' NOT NULL ,
 ADD workgroup_level int default 0 NOT NULL,
 ADD "Company Logon URL" character varying default 'not set' NOT NULL,
 ADD "Company Logoff URL" character varying default 'not set' NOT NULL  


0 commentaires

0
votes

Comme quelqu'un qui est venu ici avec la même question, je ne suis pas sûr de quoi faire de ces réponses. Je les ai tous essayés et j'ai toujours eu une erreur de syntaxe "près d'un terme ou d'une autre. Après avoir revenu à l'officiel Docs , j'ai réalisé que quoi Il était manquant était un mot clé supplémentaire, tel que défini ou type. Exemples:

Tout d'abord, ce P>

Zuri = # alter table Newarts Alter colonne SunsetDate date null; Erreur: erreur de syntaxe à ou proche de "date" Ligne 2: Alter colonne SunsetDate Date NULL; CODE> P>

Alors ceci: p>

zuri = # alter Table Newarts Alter colonne SunsetDate Type Date NULL; Erreur: erreur de syntaxe à ou près de "null" Ligne 2: Alter colonne SunsetDate Type Date NULL; CODE> P>

Oui, il reste une erreur là-bas, mais une fois que j'ai spécifié la signification de la date avec le type de mot-clé, l'erreur a été résolue et je suis passé à un autre. J'ai eu la même expérience avec l'ajout d'ensemble (voir les exemples sur la même page des documents officiels que j'ai déjà cités). P>

sur la question spécifique de NOT NULLL (surtout qu'elle concerne mon numéro de dates), j'ai lu ceci Réponse et il semblait fonctionner - je n'ai pas reçu de message d'erreur - p>

UPDATE count


0 commentaires