[
https://issues.apache.org/jira/browse/DDLUTILS-195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12645156#action_12645156
]
Thomas Dudziak commented on DDLUTILS-195:
-----------------------------------------
Are you talking about the lower_case_table_names configuration option ? A
normal Linux Mysql installation should not require tweaking this setting. Could
you try these two sets of SQL:
(1)
CREATE TABLE Roundtrip1
(
Pk1 INTEGER NOT NULL,
Pk2 DOUBLE NOT NULL,
PRIMARY KEY (Pk1, Pk2)
) ENGINE=InnoDB;
CREATE TABLE Roundtrip2
(
Pk INTEGER NOT NULL,
Avalue1 DOUBLE NOT NULL,
Avalue2 INTEGER NOT NULL,
PRIMARY KEY (Pk)
) ENGINE=InnoDB;
ALTER TABLE Roundtrip2
ADD CONSTRAINT Rt1_To_Rt2 FOREIGN KEY (Avalue2, Avalue1) REFERENCES
Roundtrip1 (Pk1, Pk2);
ALTER TABLE Roundtrip2
DROP FOREIGN KEY Rt1_To_Rt2;
ALTER TABLE Roundtrip2
DROP INDEX Rt1_To_Rt2;
(2)
CREATE TABLE `Roundtrip1`
(
`Pk1` INTEGER NOT NULL,
`Pk2` DOUBLE NOT NULL,
PRIMARY KEY (`Pk1`, `Pk2`)
) ENGINE=InnoDB;
CREATE TABLE `Roundtrip2`
(
`Pk` INTEGER NOT NULL,
`Avalue1` DOUBLE NOT NULL,
`Avalue2` INTEGER NOT NULL,
PRIMARY KEY (`Pk`)
) ENGINE=InnoDB;
ALTER TABLE `Roundtrip2`
ADD CONSTRAINT `Rt1_To_Rt2` FOREIGN KEY (`Avalue2`, `Avalue1`) REFERENCES
`Roundtrip1` (`Pk1`, `Pk2`);
ALTER TABLE `Roundtrip2`
DROP FOREIGN KEY `Rt1_To_Rt2`;
ALTER TABLE `Roundtrip2`
DROP INDEX `Rt1_To_Rt2`;
Both of these should work fine (they run without problems on my my 5.0.51a
installation running with default configuration on Ubuntu).
> Can not update a foreign key on a case sensetive MySql Database
> ---------------------------------------------------------------
>
> Key: DDLUTILS-195
> URL: https://issues.apache.org/jira/browse/DDLUTILS-195
> Project: DdlUtils
> Issue Type: Bug
> Components: Core - MySql
> Affects Versions: 1.1
> Environment: Trying to update a existing case sensitive mysql
> database on Linux
> Reporter: meindert hoving
> Assignee: Thomas Dudziak
> Fix For: 1.1
>
>
> For testing purposes I made my MySql database case sensitive (to avoid
> problems when deploying to linux)
> The foreign key restrained throws the following exception;
> throw new ModelException("The foreignkey "+fkDesc+" in table
> "+curTable.getName()+" references the undefined table
> "+fk.getForeignTableName());
> fk.getForeignTableName is all lower case, while the table name is camel case.
> hacking the correct camel case into the piece of code that throws the
> exception 'fixes' the issue. Therefore the issue is that
> fk.getForeignTableName()) contains the wrong table name.
> This wrong table name comes from JdbcModelReader
> fk.setForeignTableName((String)values.get("PKTABLE_NAME"));
> The PKTABLE_NAME value comes from readColumn what returns the table name in
> lowercase
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.