Can not add foreign key constraint

David Mehler dave.mehler at gmail.com
Mon Apr 24 07:13:55 UTC 2017


Hello,

Not sure if this is a FreeBSD issue specific with the Mysql port I'm
trying to add a table to an existing database. I'm wanting it to get
one of it's fields from an already existing table. I've done this
before in this database. This works:

CREATE TABLE `virtual_users` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `user` varchar(40) NOT NULL,
  `password` varchar(128) NOT NULL,
  `quota` bigint(20) NOT NULL DEFAULT 256,
  `quota_messages` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY `user` (`user`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


This does not:

CREATE TABLE IF NOT EXISTS `lastauth` (
`user` varchar(40) NOT NULL,
`remote_ip` varchar(18) NOT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
PRIMARY KEY (`user`),
FOREIGN KEY (user) REFERENCES virtual_users(user) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Can anyone spot the situation?

Thanks.
Dave.


More information about the freebsd-questions mailing list