Два первичных ключа, указанные в базе данных MySQL

Я пытаюсь создать тестовую базу данных, которая является репликой уже существующей базы данных. Для этого я использую модели Django (теоретически модели, используемые с исходной базой данных). Недавно я унаследовал код от кого-то другого и пытаюсь понять, что именно происходит с кодом.

В модели одна из таблиц имеет два столбца, которые определены как первичный ключ.

        column1 = models.IntegerField(primary_key = True)
        column2 = models.IntegerField(primary_key = True)
        column3 = models.CharField(max_length = 30)

Когда я пытаюсь синхронизировать эту модель с тестовой базой данных, возникает ошибка:

Файл "/ somePathHere / MySQLdb / connections.py ", строка 36, в defaulterrorhandler поднять класс ошибок, значение ошибки _mysql_exceptions.OperationalError: (1068, 'Определено несколько первичных ключей')

В django docs написано, что Django не допускает использование нескольких первичных ключей. Однако, глядя на вывод DESCRIBE [tablename] в исходной базе данных MySQL, кажется, что это именно то, что здесь происходит:

        +------------+------------+------+-----+---------+-------+
        | Field      | Type       | Null | Key | Default | Extra |
        +------------+------------+------+-----+---------+-------+
        | IDENTIFIER | bigint(20) | NO   | PRI | NULL    |       |
        | TIMESTAMP_ | bigint(20) | NO   | PRI | NULL    |       |
        | VALUE_     | longtext   | YES  |     | NULL    |       |
        +------------+------------+------+-----+---------+-------+

Обратите внимание, что IDENTIFIER и TIMESTAMP_ указаны как первичные ключи .

Я вижу много тем о SO ( Пример 1 , Пример 2 и Пример 3 ) о создании первичного ключа на основе нескольких столбцы - что я вижу составной ключ? В таком случае, как это передается через модель Django, то есть как его воспроизвести?

Если это не составной ключ, что это такое?

6
задан Community 23 May 2017 в 12:15
поделиться