Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySql und Auto_Increment (https://www.delphipraxis.net/61557-mysql-und-auto_increment.html)

Andidreas 23. Jan 2006 08:51

Datenbank: MySql • Version: 4.0.20 • Zugriff über: MySqlDac

MySql und Auto_Increment
 
hy

laut einem handbuch das ich mir gerade durchlese soll man auch im mysql die spalteneigenschaft Auto_Increment verwenden können...
leider tut der befehl bei mir nicht, meine syntax sieht wie folgt aus:

SQL-Code:
Create Table If Not Exists TestDB.TestTab3
(LfdNr Integer Auto_Increment)
hab ich was falsch geschrieben oder warum geht das net???

alcaeus 23. Jan 2006 09:20

Re: MySql und Auto_Increment
 
Moin,

folgendes funktioniert bei mir:
SQL-Code:
CREATE TABLE foobar (
   bar mediumint(8) UNSIGNED NOT NULL auto_increment
);
Versuch bei deinem Query dem Feld mal explizit "NOT NULL" zuzuweisen, ich glaube das ist die Bedingung fuer ein autoinc-Feld ;)

Greetz
alcaeus

Sharky 23. Jan 2006 10:24

Re: MySql und Auto_Increment
 
Hai Andidreas,

evnetuell liegt es auch daran das mySQL auf einem AutoInc Feld einen Key erwartet.
SQL-Code:
CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL auto_increment,
  PRIMARY KEY (`id`)
)

Andidreas 23. Jan 2006 10:38

Re: MySql und Auto_Increment
 
jupp es lag am primary key

folgendes statment funktioniert bei mir

SQL-Code:
Create Table If Not Exists TestDB.TestTab3 (
LfdNr Integer Auto_Increment,
Primary Key (LfdNr)
)
aber eins muss ich sagen mein handbuch is zum kotzen!!!!
die schreiben paar seiten vorher das die angabe von nem primary key so aussehen muss

SQL-Code:
 Create Table If Not Exists TestDB.TestTab4 (
Feld1 Integer Primary Key
)
und das die angabe in klammer wie im beispiel mit dem auto_increment net funktionert

ich bin jetzt leicht verwirrt!!!! :coder2:

Sharky 23. Jan 2006 10:49

Re: MySql und Auto_Increment
 
Hai Andidreas,

bei meinem mySQL 5.x geht es auch so:
SQL-Code:
Create Table If Not Exists Test.TestTab4 ( 
LfdNr Integer unsigned Not Null Auto_Increment Primary Key
)

Andidreas 23. Jan 2006 13:33

Re: MySql und Auto_Increment
 
jepp funktioniert bei mir auch

für was is denn des unsigned zuständig, dass ergibt für mich keinen sinn!

Sharky 23. Jan 2006 13:40

Re: MySql und Auto_Increment
 
Zitat:

Zitat von Andidreas
... für was is denn des unsigned zuständig, dass ergibt für mich keinen sinn!

Warum ergibt das keinen Sinn?
unsigned sagt dem mySQL das der Integer ohne Vorzeichen behandelt werden soll. Es werden also nur positive Werte zugelassen.
Da ein auto_inc keinen negativen Wert vergibt können wir also auch den gesamten zahlenbereich ausnutzen.

Wenn als Datentyp ein Int(eger) gewählt wurde hat dieses einen Zahlenbereich von
-2 147 483 648 bis 2 147 483 647

wenn zusätzlich unsigned angegeben wurde:
0 bis 4 294 967 295

Darum verwende ich bei auto_inc Feldern (nur eines pro Tabelle ist erlaub) immer unsigned.

Andidreas 25. Jan 2006 16:47

Re: MySql und Auto_Increment
 
naja... ich muß ehrlich gesagt zugeben das ich nicht zu 100% die bedeutung von unsigned wußte...
von daher hab ich das unsigned mit dem not null falsch in verbindung gebracht :wall:

sorry denkfehler meinerseits :pale:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz