Skip to content

Commit 83b35a1

Browse files
authored
Merge pull request #358 from Deepak-Vohra/main
SQL-145 How to Fix Error 1064 When Using ALTER TABLE ADD CONSTRAINT in MySQL
2 parents 0902e62 + 600ad12 commit 83b35a1

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-- Drop the constraint so that we can add it back
2+
ALTER TABLE Specification
3+
DROP FOREIGN KEY specification_program_id_fkey;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Correct syntax
2+
ALTER TABLE Specification
3+
ADD CONSTRAINT specification_program_id_fkey
4+
FOREIGN KEY (program_id)
5+
REFERENCES Program (id);
6+
7+
# Incorrect syntax; jumbled syntax
8+
ALTER TABLE Specification
9+
ADD FOREIGN KEY specification_program_id_fkey
10+
CONSTRAINT (program_id)
11+
REFERENCES Program (id);
12+
13+
# Incorrect syntax; wrong punctuation
14+
ALTER TABLE Specification (
15+
ADD CONSTRAINT
16+
specification_program_id_fkey
17+
FOREIGN KEY (program_id)
18+
REFERENCES Program (id)
19+
);
20+
21+
# Incorrect syntax; a reserved word
22+
ALTER TABLE Specification
23+
ADD CONSTRAINT foreign
24+
FOREIGN KEY (program_id)
25+
REFERENCES Program (id);
26+
27+
# Incorrect syntax, misspelled keyword REFERENCES
28+
ALTER TABLE Specification
29+
ADD CONSTRAINT specification_program_id_fkey
30+
FOREIGN KEY (program_id)
31+
REFERENCE Program (id);
32+
33+
# Incorrect syntax, missing closing parenthesis
34+
ALTER TABLE Specification
35+
ADD CONSTRAINT specification_program_id_fkey
36+
FOREIGN KEY (program_id
37+
REFERENCES Program (id);
38+
39+
# Incorrect syntax; quotes
40+
ALTER TABLE "Specification"
41+
ADD CONSTRAINT "specification_program_id_fkey"
42+
FOREIGN KEY ("program_id")
43+
REFERENCES Program ("id");
44+
45+
# Correct syntax; backticks
46+
ALTER TABLE `Specification`
47+
ADD CONSTRAINT `specification_program_id_fkey`
48+
FOREIGN KEY (`program_id`)
49+
REFERENCES Program (`id`);
50+
51+
# Incorrect syntax, missing required elements
52+
ALTER TABLE Specification
53+
ADD CONSTRAINT specification_program_id_fkey
54+
FOREIGN KEY (program_id);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# List the FK constraints that reference the PROGRAM table
2+
SELECT
3+
TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
4+
FROM
5+
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
6+
WHERE
7+
REFERENCED_TABLE_SCHEMA = (SELECT DATABASE()) AND
8+
REFERENCED_TABLE_NAME = 'PROGRAM' \G

0 commit comments

Comments
 (0)