最近在了解商派的ecstore,发现一个奇怪问题:
发货单表sdb_b2c_delivery中主键delivery_id BIGINT(20) UNISGNED NOT NULL AUTO_INCREMENT我在数据库中手工添加记录时自动生成的delivery_id值是1758391266,可刷新后却自动变成1201307091798518754,这是为什么?求解!
发货单表sdb_b2c_delivery中主键delivery_id BIGINT(20) UNISGNED NOT NULL AUTO_INCREMENT我在数据库中手工添加记录时自动生成的delivery_id值是1758391266,可刷新后却自动变成1201307091798518754,这是为什么?求解!
不用保存,直接点刷新后,截图如下:
select * from ...
结果如何
手工添加后保存截图如下:
执行SQLSELECT * FROM sdb_b2c_delivery截图如下:
show create table sdb_b2c_delivery
CREATE TABLE `sdb_b2c_delivery` (
`delivery_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`order_id` VARCHAR(100) DEFAULT NULL,
`delivery_bn` VARCHAR(32) DEFAULT NULL,
`member_id` MEDIUMINT(8) UNSIGNED DEFAULT NULL,
`money` DECIMAL(20,3) NOT NULL DEFAULT '0.000',
`is_protect` ENUM('true','false') NOT NULL DEFAULT 'false',
`delivery` MEDIUMINT(8) UNSIGNED DEFAULT NULL,
`logi_id` VARCHAR(50) DEFAULT NULL,
`logi_name` VARCHAR(100) DEFAULT NULL,
`logi_no` VARCHAR(50) DEFAULT NULL,
`ship_name` VARCHAR(50) DEFAULT NULL,
`ship_area` VARCHAR(255) DEFAULT NULL,
`ship_addr` TEXT,
`ship_zip` VARCHAR(20) DEFAULT NULL,
`ship_tel` VARCHAR(50) DEFAULT NULL,
`ship_mobile` VARCHAR(50) DEFAULT NULL,
`ship_email` VARCHAR(200) DEFAULT NULL,
`t_begin` INT(10) UNSIGNED DEFAULT NULL,
`t_send` INT(10) UNSIGNED DEFAULT NULL,
`t_confirm` INT(10) UNSIGNED DEFAULT NULL,
`op_name` VARCHAR(50) DEFAULT NULL,
`status` ENUM('succ','failed','cancel','lost','progress','timeout','ready') NOT NULL DEFAULT 'ready',
`memo` LONGTEXT,
`disabled` ENUM('true','false') DEFAULT 'false',
PRIMARY KEY (`delivery_id`),
KEY `ind_disabled` (`disabled`),
KEY `ind_logi_no` (`logi_no`),
KEY `idx_c_member_id` (`member_id`),
KEY `idx_c_delivery` (`delivery`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO sdb_b2c_delivery (......
怎么才能获得最终的delivery_id值呢?我用mysql_insert_id()获取的是1758391266而不是1201307091798518754
打开通用日志、检查TRIGGER等等方法
select max(delivery_id) ....
以前人来没想到PRIMARY KEY、AUTO_INCREMENT类型的字段居然可以后期更改非常感谢您的帮助!