Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MYSQL 5.5 27需要在-200000000开始ID,通常每个记录增加+1_Php_Mysql_Sql - Fatal编程技术网

Php MYSQL 5.5 27需要在-200000000开始ID,通常每个记录增加+1

Php MYSQL 5.5 27需要在-200000000开始ID,通常每个记录增加+1,php,mysql,sql,Php,Mysql,Sql,我有一个客户端希望将MSSQL数据库移植到MYSQL。 ID都是负整数,我需要创建一些从 -每个新记录200000000然后像正常情况一样递增+1不能使用带负数的自动递增字段。从: 如果用户 为列指定负值,或者如果该值变大 大于可存储在指定整数中的最大整数 类型 我建议只在MySQL中存储您想要的ID+200000000。但您可能已经想到了这一点,只想将负数存储为ID。您的客户机必须生成ID,并且您必须确保生成的ID不会出现并发问题。这里有一个解决方案免责声明:尚未对其进行测试,对于许多并发用户

我有一个客户端希望将MSSQL数据库移植到MYSQL。 ID都是负整数,我需要创建一些从
-每个新记录200000000然后像正常情况一样递增+1

不能使用带负数的自动递增字段。从:

如果用户 为列指定负值,或者如果该值变大 大于可存储在指定整数中的最大整数 类型

我建议只在MySQL中存储您想要的ID+200000000。但您可能已经想到了这一点,只想将负数存储为ID。您的客户机必须生成ID,并且您必须确保生成的ID不会出现并发问题。这里有一个解决方案免责声明:尚未对其进行测试,对于许多并发用户来说可能不是很有效:

LOCK TABLE MyTable READ; -- Make sure no one else can use the table
SELECT MAX(ID) FROM MyTABLE; -- Find out what the current ID is
INSERT INTO MyTable(ID, OtherColumn) VALUES(-100, "x"); -- Derive the ID from the previous value
UNLOCK TABLES; -- Allow others to use table again

MyTable.ID列必须签名。

Ok。着手你有许可证。:-说真的,你忘了在这里问问题,也没有迹象表明你自己已经尝试过解决这个问题。MySql支持:[-2147483648,2147483647]@Mr.polywhill,但没有签名的自动递增字段。@user:371408我只是把它扔出去了。相关帖子:我手动输入了第一条记录-2000000,然后我尝试这个逻辑来声明X INT;设置X=从php\u登录中选择最小值\u id;选择X;但我一直得到1064有什么想法吗?1064不是语法错误吗?你能显示你的表格定义吗?