MYSQL中的新問題我試圖爲existsants表創建manualy外鍵,因爲Django不會修改它。MYSQL問題1025
python2 manage.py sqlall <appname>
表明我所期待的,但
python2 manage.py syncdb
沒有做任何事情來表。 下面是型號:
class A(models.Model):
A_field1 = models.IntegerField(unique=True) # is not the primary key
A_field2 = models.CharField(max_length=200)
...
A_field3 = models.CharField(max_length=30)
# this method is to get the good name in the admin interface
def __unicode__(self):
return self.name
class B(models.Model):
B_field1 = models.FloatField()
...
B_field2 = models.ForeignKey(A, to_field='A_field1')
但顯然我錯了操作,因爲它沒有找到所引用的領域,當我運行服務器,所以我試圖刪除外鍵,我得到這個奇怪的錯誤:
mysql> ALTER TABLE A DROP COLUMN A_field1;
ERROR 1025 (HY000): Error on rename of './website/#sql-41e_740' to
'./website/<tablename>' (errno: 150)
而且,我試圖
mysql> ALTER TABLE B DROP COLUMN B_field2;
卻得到了幾乎同樣的錯誤如上
任何想法?
下面表格:
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| A_field1 | int(11) | NO | PRI | NULL | auto_increment |
| A_field2 | varchar(200) | NO | | NULL | |
| A_field3 | varchar(30) | NO | | NULL | |
....
+--------------+--------------+------+-----+---------+----------------+
+-----------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| B_field1 | double | NO | | NULL | |
...
| B_field2 | int(11) | NO | MUL | NULL | |
+-----------------+----------+------+-----+---------+----------------+
這不是應用程序問題,這是數據庫問題中的數據結構。所以,提供你的桌子完整的結構 –