Skip to content
Merged
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Drop the constraint so that we can add it back
ALTER TABLE Specification
DROP FOREIGN KEY specification_program_id_fkey;
Original file line number Diff line number Diff line change
@@ -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);
Original file line number Diff line number Diff line change
@@ -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