我有两个数据库,它们需要在不同的表上同步它们的自动增量ids。现在,我有一个PHP函数可以检查两个表的当前自动增量id,然后将最低值设置为最高值。如果有更好的办法,我洗耳恭听。
我真的不想给web用户alter权限,因为SQL注入可能会清除所有密码(或其他愚蠢的东西)。有没有办法限制MySQL用户更改自动增量,而不打开它来更改alter语句?
发布于 2010-03-20 01:53:43
在MySQL中,您可以设置自动增量列的值。MySQL将自动使下一个数字更高。假设到目前为止我有两条记录,因此自动增量id字段中的最高值是2。我插入了一条新记录,指定了值。
INSERT INTO User (id, name) values(5, 'john')下一个id值将是6:
INSERT INTO User (name) values('dave')不需要更改该表。
在MSSQL中,您需要翻转开关才能执行相同的操作。
SET IDENTITY_INSERT ON发布于 2012-02-07 21:12:26
“我有两个数据库需要在不同的表上同步它们的自动增量ids。”
WAT?
“我实际上说的是让不同数据库上的两个相同的表保持同步。”
如果您希望复制同一个表,以便可以在两台不同的机器上访问它,则应该使用MySQL复制,而不是尝试从头开始重新实现它。
如果您不想精确地复制表,而只是想在单独的位置重新插入数据,则应该重做最初用于插入数据的代码。
手动尝试同步自动增量is几乎肯定是错误的,无论您试图实现什么。
https://stackoverflow.com/questions/2479188
复制相似问题