una tablas tabla relacionar referencial primarias primaria por llaves llave integridad foráneas foranea externa developer datos creada como codigo clave agregar sql mysql

tablas - ¿Cómo agregar una columna y convertirla en una clave externa en una sola declaración de MySQL?



relacionar tablas en sql server por codigo (3)

La siguiente consulta agrega una columna al modificar la consulta y la consulta de restricción la convierte en una FK en una sola consulta de mysql. Puedes hacerlo así,

SINTAXIS:

ALTER TABLE `SCHEMANAME`.`TABLE1` ADD COLUMN `FK_COLUMN` BIGINT(20) NOT NULL, ADD CONSTRAINT `FK_TABLE2_COLUMN` FOREIGN KEY (`FK_COLUMN`) REFERENCES `SCHEMANAME`.`TABLE2`(`PK_COLUMN`);

EJEMPLO:

ALTER TABLE `USERDB`.`ADDRESS_TABLE` ADD COLUMN `USER_ID` BIGINT(20) NOT NULL AFTER `PHONE_NUMBER`, ADD CONSTRAINT `FK_CUSTOMER_TABLE_CUSTOMER_ID` FOREIGN KEY (`USER_ID`) REFERENCES `USERDB`.`CUSTOMER_TABLE`(`CUSTOMER_ID`);

En mysql, ¿puedo agregar una columna y una clave externa en la misma declaración? ¿Y cuál es la sintaxis adecuada para agregar el fk?

Aquí está mi SQL:

ALTER TABLE database.table ADD COLUMN columnname INT DEFAULT(1), FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;

... y el mensaje de error adjunto:

Tienes un error en tu sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de ''FOREIGN KEY (fk_name) REFERENCES reftable (refcolumn) ON DELETE CASCADE'' en la línea 4


Prueba esto:

ALTER TABLE database.table ADD COLUMN columnname INT DEFAULT(1), ADD FOREIGN KEY fk_name(fk_column) REFERENCES reftable(refcolumn) ON DELETE CASCADE;


Puedes usarlo.

ALTER TABLE database.table ADD COLUMN columnname INT DEFAULT(1); ALTER TABLE database.table add FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;