【问题标题】:Set AUTOINCREMENT value in django table在 django 表中设置 AUTOINCREMENT 值
【发布时间】:2015-12-15 01:37:46
【问题描述】:

我在mysql中有下表:

CREATE TABLE `portal_asset` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `asset_id` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1000000 DEFAULT CHARSET=utf8;

如何在 django 中创建相同的表?到目前为止,我有以下内容,但不确定如何设置AUTO_INCREMENT 值--

class PortalAsset(models.Model):
    id = models.IntegerField(primary_key=True)
    asset_id = models.IntegerField(unique=True)
    class Meta:
        db_table = u'portal_asset'

如何将 AUTO_INCREMENT 值设置为从 1000000 开始?相当于:

alter table portal_asset AUTO_INCREMENT=1000000;

【问题讨论】:

    标签: python mysql django


    【解决方案1】:

    您可以在迁移中使用RunSQL 操作来执行必要的 SQL:

    migrations.RunSQL("ALTER TABLE portal_asset AUTO_INCREMENT=1000000;")
    

    如果您尚未运行任何迁移,则可以将其添加到您的第一个迁移中,以确保在设置新值之前没有插入任何行。否则,您必须在新迁移中添加此操作。您可以使用python manage.py makemigrations --empty <yourappname> 创建一个新的空迁移。

    【讨论】:

      猜你喜欢
      • 2010-10-16
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 2010-10-31
      • 2011-11-03
      • 2010-10-10
      相关资源
      最近更新 更多