webForumDet fria alternativet
Logga in / Bli medlem

mySQL Front genererad SQL

Databaser & SQL

24 svar · 453 visningar · startad av Erik Juhlin

Medlem sedan maj 200010 687 inlägg
Frågan#1

Vad är problemet med den här koden?

CREATE TABLE `tblCategory` (`CategoryId` INT (3) NOT NULL AUTO_INCREMENT, `CategoryName` VARCHAR (50) NOT NULL, `CategoryTimeStamp` TIMESTAMP (3) DEFAULT '0' NOT NULL, `CategoryCreationDate` DATETIME (3) NOT NULL, PRIMARY KEY(`CategoryId`), UNIQUE(`CategoryId`), INDEX(`CategoryId`))
Medlem sedan juni 20019 024 inlägg
#2
...CategoryCreationDate` DATETIME [blue][b](3)[/b][/blue] NOT NULL...

Du kan inte ange en längd på en datetime kolumn.

Medlem sedan maj 200010 687 inlägg
#3

Har jag inte gjort. MySQL Front som jävlas...

Förresten, om man vill använda Foreign keys, hur gör man då?

Medlem sedan dec. 200012 464 inlägg
#4

Vad då ? Får du fel eller vad? Specificera dig.

Varför har du både unique, index och primary key på samma kolumn?

Foreign keys fungerar bara om du har INNODB som tabelltyp.

Medlem sedan maj 200010 687 inlägg
#5

Ok, så det är bara att ändra till den tabelltypen? Några nackdelar med det?

Primary Key är väl samma som unique? O sen kanske det indexeras automatiskt på primary key kolumner. Men jag var inte säker... :)

Medlem sedan maj 200010 687 inlägg
#6

Om man vill ha booleans (bit), ska man köra med TINYINT(1) då?

Medlem sedan maj 200010 687 inlägg
#7

Och vad är Zerofill och Unsigned? :)

Medlem sedan dec. 200012 464 inlägg
#8

Finns det ingen hjälpfunktion?

char(0) null är den kortaste om man vill ha motsvarande bit

unsigned bara positivt

int(4) zerofill

11 --> 0011

Medlem sedan juni 20019 024 inlägg
#9

Har jag inte gjort. MySQL Front som jävlas...

Kan kanske vara en gammal version. Senaste är 2.4.

Primary Key är väl samma som unique? O sen kanske det indexeras automatiskt på primary key kolumner. Men jag var inte säker... :)

Primärnyckeln är redan unik. Unique används på andra fält som ska vara unika än primärnyckeln. Och såvitt jag vet så indexeras även primärnyckeln.

Om man vill ha booleans (bit), ska man köra med TINYINT(1) då?

Precis.

Zerofill = T.ex. om man behöver inledande nollor. Värdet 3 i en INT(4) ZEROFILL kolumn blir därmed 0003.
Unsigned = Endast positiva värden (vilket innebär att man kan lagra högre tal, se mysql's hemsida för mer exakt).

Medlem sedan maj 200010 687 inlägg
#10

Ah! :D

Hjälpfunktion..? Jo, du är ju min hjälpfunktion! ;)

Medlem sedan juni 20019 024 inlägg
#11

LarsG skrev:

char(0) null är den kortaste om man vill ha motsvarande bit

Jaså? Jag har alltid kört med tinyint. Men hur ska man ange ett värde för denna (förutom null)?

Medlem sedan dec. 200012 464 inlägg
#12

null eller ''

Medlem sedan juni 20019 024 inlägg
#13

Hehe, sedan när man administrerar databasen med hjälp av något GUI (t ex MySQL Front) får man ett helvete när man inte kan avläsa vad fälten innehåller. :e

Är prestandaskillnaden stor om man jämför med tinyint? Vilka för-/nackdelar har det?

Medlem sedan dec. 200012 464 inlägg
#14

Det är bara nackdelar, tycker jag egentligen. Disk är billigt så använd en tinyint så länge det inte finns en riktig boolean.

Medlem sedan maj 200010 687 inlägg
#15

Hur ändrar man till InnoDB som tabelltyp? Måste man göra om allt då eller?

Medlem sedan juni 20019 024 inlägg
#16

Högerklicka på tabellen och välj Change type > InnoDB.
Är det inte så att InnoDB tabeller även klarar transaktioner i flera steg?

Medlem sedan maj 200010 687 inlägg
#17

*gäsp*
Vad ska man köra med för grafiskt program för o kunna koppla?

Medlem sedan juni 20019 024 inlägg
#18

Du skrev ju att du körde med MySQL Front, så jag förmodade det. ;)

Medlem sedan maj 200010 687 inlägg
#19

Går ju inte att göra i MySQL Front... :l

Medlem sedan juni 20019 024 inlägg
#20

Ladda ned senaste då. Finns många nya och trevliga saker där.

275 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)