On Apr 29, 2010, at 1:01 PM, Armin Faltl wrote: > Another strange thing with gparts: > > in 'sql/mysql/create-basic.sql' one finds: > ------------------------ cut ---------------------------- > ... > CREATE TABLE Symbol ( > > SymbolID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, > SymbolPath VARCHAR(500) NOT NULL, > DeviceID INTEGER UNSIGNED NOT NULL, > > PRIMARY KEY ( SymbolID ), > FOREIGN KEY ( DeviceID ) REFERENCES Device, > UNIQUE ( SymbolPath ) > ); > > > -- Create a table for symbol details (comments). > -- > -- Each symbol may have many comments. > -- > CREATE TABLE SymbolDetail ( > > SymbolID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, > Detail VARCHAR(500) NOT NULL, > > FOREIGN KEY ( SymbolID ) REFERENCES Symbol, > UNIQUE ( SymbolID, Detail ) > ); > ... > ------------------------ cut ----------------------------- > > what is the purpose of auto-increment on a foreign key? > Auto-increment would probably be the default behavior, but as it > will break the foreign key constraint this, same as not assigning > anything will prevent creation of that row. Actually it is worse > (at least with PostgreSQL): the autoincrement counter falls > behind, if the default behavior is not used. > It can be assumed, that the SymbolID's from "Symbol" will form a gapless > sequence. > If for some reason, the SymbolID gets missed during creation of a > SymbolDetail, the AUTO_INCREMENT will produce an integer > that is probably low, because this is a bug. And this will happily > attach the detail to a random symbol, instead of raising an exception. > > Wrong? > > Armin
The AUTO_INCREMENT should not be there, but no problem occurs because of it. I'll remove it in a subsequent patch. Cheers, Ed _______________________________________________ geda-user mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

