Hi,

I encountered a situation that foreign key constraints were generated
differently for the same data model.

Below is my test model that has 2 identical sets of 1-to-many tables.
When I run django sqlall command, however the foreign key constraints
were built differently, one used column constraint while the other
used table constraint. It seems the table names contribute to this
behavior. Although they function very similarly, I wonder why that
happened.


from django.db import models

class a1(models.Model):
    a1c1 = models.CharField(maxlength=200)

class a2(models.Model):
    a2c1 = models.ForeignKey(a1)
    a2c2 = models.CharField(maxlength=200, core=True)

class x1(models.Model):
    x1c1 = models.CharField(maxlength=200)

class x2(models.Model):
    x2c1 = models.ForeignKey(x1)
    x2c2 = models.CharField(maxlength=200, core=True)


Results from sqlall command:


BEGIN;
CREATE TABLE `test_a1` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `a1c1` varchar(200) NOT NULL
);
CREATE TABLE `test_x2` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `x2c1_id` integer NOT NULL,
    `x2c2` varchar(200) NOT NULL
);
CREATE TABLE `test_x1` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `x1c1` varchar(200) NOT NULL
);
ALTER TABLE `test_x2` ADD CONSTRAINT x2c1_id_refs_id_11de27b2 FOREIGN
KEY (`x2c1_id`) REFERENCES `test_x1` (`id`);
CREATE TABLE `test_a2` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `a2c1_id` integer NOT NULL REFERENCES `test_a1` (`id`),
    `a2c2` varchar(200) NOT NULL
);
CREATE INDEX `test_x2_x2c1_id` ON `test_x2` (`x2c1_id`);
CREATE INDEX `test_a2_a2c1_id` ON `test_a2` (`a2c1_id`);
COMMIT;


Thanks.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to