diff --git a/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/drop-constraint.sql b/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/drop-constraint.sql new file mode 100644 index 00000000..f5600118 --- /dev/null +++ b/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/drop-constraint.sql @@ -0,0 +1,3 @@ +-- Drop the constraint so that we can add it back +ALTER TABLE Specification +DROP FOREIGN KEY specification_program_id_fkey; diff --git a/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/example-sql-statements-that-generate-error-message.sql b/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/example-sql-statements-that-generate-error-message.sql new file mode 100644 index 00000000..d6a475f3 --- /dev/null +++ b/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/example-sql-statements-that-generate-error-message.sql @@ -0,0 +1,54 @@ +# Correct syntax +ALTER TABLE Specification +ADD CONSTRAINT specification_program_id_fkey +FOREIGN KEY (program_id) +REFERENCES Program (id); + +# Incorrect syntax; jumbled syntax +ALTER TABLE Specification +ADD FOREIGN KEY specification_program_id_fkey +CONSTRAINT (program_id) +REFERENCES Program (id); + +# Incorrect syntax; wrong punctuation +ALTER TABLE Specification ( +ADD CONSTRAINT + specification_program_id_fkey + FOREIGN KEY (program_id) + REFERENCES Program (id) +); + +# Incorrect syntax; a reserved word +ALTER TABLE Specification +ADD CONSTRAINT foreign +FOREIGN KEY (program_id) +REFERENCES Program (id); + +# Incorrect syntax, misspelled keyword REFERENCES +ALTER TABLE Specification +ADD CONSTRAINT specification_program_id_fkey +FOREIGN KEY (program_id) +REFERENCE Program (id); + +# Incorrect syntax, missing closing parenthesis +ALTER TABLE Specification +ADD CONSTRAINT specification_program_id_fkey +FOREIGN KEY (program_id +REFERENCES Program (id); + +# Incorrect syntax; quotes +ALTER TABLE "Specification" +ADD CONSTRAINT "specification_program_id_fkey" +FOREIGN KEY ("program_id") +REFERENCES Program ("id"); + +# Correct syntax; backticks +ALTER TABLE `Specification` +ADD CONSTRAINT `specification_program_id_fkey` +FOREIGN KEY (`program_id`) +REFERENCES Program (`id`); + +# Incorrect syntax, missing required elements +ALTER TABLE Specification +ADD CONSTRAINT specification_program_id_fkey +FOREIGN KEY (program_id); diff --git a/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/list-constraint.sql b/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/list-constraint.sql new file mode 100644 index 00000000..1b39c18b --- /dev/null +++ b/sql-queries-11/fix-error-1064-when-using-ALTER-TABLE-ADD CONSTRAINT-in-MySQL/list-constraint.sql @@ -0,0 +1,8 @@ +# List the FK constraints that reference the PROGRAM table +SELECT + TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME +FROM + INFORMATION_SCHEMA.KEY_COLUMN_USAGE +WHERE + REFERENCED_TABLE_SCHEMA = (SELECT DATABASE()) AND + REFERENCED_TABLE_NAME = 'PROGRAM' \G