MySQL Forums
Forum List  »  Newbie

Foreign key across multiple databases
Posted by: Alan Hooker
Date: August 26, 2014 08:21AM

I have two tables on two databases

--
-- Database: `db2980298_agrimapper`
--

-- --------------------------------------------------------

--
-- Table structure for table `areaLevelZero`
--

CREATE TABLE `areaLevelZero` (
`id` int(2) NOT NULL auto_increment,
`areaLevelZeroID` varchar(36) collate utf8_unicode_ci NOT NULL,
`areaLevelCount` tinyint(1) NOT NULL,
`areaLevelZeroName` varchar(30) collate utf8_unicode_ci NOT NULL,
`active` enum('T','F') collate utf8_unicode_ci NOT NULL default 'F',
`isDeleted` tinyint(1) NOT NULL default '0',
`lastModified` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`areaLevelZeroID`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci PACK_KEYS=0 AUTO_INCREMENT=251 ;

--
-- Triggers `areaLevelZero`
--
DROP TRIGGER IF EXISTS `db2980298_agrimapper`.`areaLevelZeroUUID`;
DELIMITER //
CREATE TRIGGER `db2980298_agrimapper`.`areaLevelZeroUUID` BEFORE INSERT ON `db2980298_agrimapper`.`areaLevelZero`
FOR EACH ROW BEGIN
IF NEW.areaLevelZeroID = '' THEN
SET NEW.areaLevelZeroID = UUID();
END IF;
END
//
DELIMITER ;
DROP TRIGGER IF EXISTS `db2980298_agrimapper`.`areaLevelZeroTimestampable`;
DELIMITER //
CREATE TRIGGER `db2980298_agrimapper`.`areaLevelZeroTimestampable` BEFORE UPDATE ON `db2980298_agrimapper`.`areaLevelZero`
FOR EACH ROW SET NEW.lastModified = NOW()
//
DELIMITER ;

and on db6901371_clients

--
-- Database: `db6901371_clients`
--

-- --------------------------------------------------------

--
-- Table structure for table `clients`
--

CREATE TABLE `clients` (
`clientID` tinyint(3) NOT NULL auto_increment,
`areaLevelZeroID` varchar(36) NOT NULL,
`areaLevelFourID` int(6) NOT NULL,
`clientName` varchar(30) NOT NULL,
PRIMARY KEY (`clientID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

when I try and create a FOREIGN KEY on db6901371_clients.clients FROM db2980298_agrimapper with root privalages

ALTER TABLE `db6901371_clients`.`clients` ADD FOREIGN KEY ( `areaLevelZeroID` ) REFERENCES `areaLevelZero`' ( `areaLevelZeroID` )

I get the error

Can't create table './db6901371_clients/#sql-e5_720.frm' (errno: 150)

Options: ReplyQuote


Subject
Written By
Posted
Foreign key across multiple databases
August 26, 2014 08:21AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.