CREATE TABLE `table1` ( ...... `property_id` int(8) REFERENCES `table2` (id) ON UPDATE CASCADE ON DELETE NO ACTION, ...... ) ENGINE=InnoDB; CREATE TABLE `table2` ( `id` int(8) PRIMARY KEY AUTO_INCREMENT NOT NULL, `property` varchar(50) ) ENGINE=InnoDB; #### my ($pid) = $db->query(<list; SELECT `id` FROM `table2` WHERE `property` = ? END_SQL if (not $pid) { $db->query("INSERT INTO `table2` (`property`) VALUES (?)", $property); $pid = $db->last_insert_id(); }