如何在mysql中设计一个具有两个自动增量字段的表
对于一个项目,我们目前正在进行数据库设计。我们认为应该在一张表中使用两个 auto_increment 字段。
table master:
`pid` int(10) NOT NULL auto_increment,
`iid` int(10) NOT NULL auto_increment,
...
要从备用 auto_incremet 开始,您可以使用 ALTER TABLE tbl AUTO_INCRMENT = 100000; 这只适用于整个表“tbl”。 pid 的 auto_increment 应该是 50000000,iid 的 auto_increment 应该是 80000000
我们希望避免将其分成 3 个表,关系为 master ->; table.pid 和 master ->表.iid。
更改表不起作用的原因 /* SQL 错误 (1075):表定义不正确;只能有一个自动列,并且必须将其定义为键 */
是否可能或您推荐什么替代方案?
For a project we do the database design at the moment. We think we should use two auto_increment fields in one table.
table master:
`pid` int(10) NOT NULL auto_increment,
`iid` int(10) NOT NULL auto_increment,
...
To start with a alternate auto_incremet you can use ALTER TABLE tbl AUTO_INCREMENT = 100000;
This will work only for the whole table 'tbl'.
auto_increment for pid should be 50000000 and auto_increment for iid should be 80000000
We want to avoid splitting it into 3 tables with relations master -> table.pid and master -> table.iid.
altering the table is not working cause/* SQL Error (1075): Incorrect table definition; there can be only one auto column and it must be defined as a key */
Is it possible or what alternative do you recommend?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您不能使用两个自动列,我认为您必须重新设计数据库。你到底需要什么?
If you cannot use two auto columns I think you must redesign your database. What do you need exactly?
我不完全理解你的问题,但你可以使用触发器来维护关键值,如下所示:
I dont fully understand your question but you can use triggers to maintain key values like the following: