看看下面的SQL小提琴:默认值 - InnoDB的
SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
CREATE TABLE IF NOT EXISTS `vatbands` (
`vatbands_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`code` ENUM('A', 'B', 'C', 'D', 'E', 'F') NOT NULL,
`client_id` INT(11) UNSIGNED NOT NULL,
PRIMARY KEY (`vatbands_id`, `code`, `client_id`),
INDEX `vatcode_vatbands` (`code` ASC, `client_id` ASC))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `item` (
`item_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`client_id` INT(11) UNSIGNED NOT NULL COMMENT 'Customer ID',
`vatcode` ENUM('A', 'B', 'C', 'D', 'E', 'F') DEFAULT 'A',
PRIMARY KEY (`item_id`, `client_id`),
INDEX `vatcode_item` (`vatcode` ASC, `client_id` ASC),
CONSTRAINT `vatcode_item`
FOREIGN KEY (`vatcode` , `client_id`)
REFERENCES `sbs_node`.`vatbands` (`code` , `client_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
START TRANSACTION;
INSERT INTO `vatbands` (`client_id`, `code`) VALUES ('1', 'A');
INSERT INTO `item` (`client_id`, `vatcode`) VALUES ('1', NULL);
COMMIT;
为什么vatcode
列 '空' 当 'A' 的默认值是指定?
令人毛骨悚然的选民喜欢留言? – Edward 2014-09-20 16:55:20