M Mika3l Medlem sedan nov. 2001 8 492 inlägg Trådstart 27 jan. 2004 22:36 #1 Har stött på ett problem när jag via MySQL-Front försöker skapa en tabell i en databas.
Felmeddelande och lite info
f_sex är av typen tinytext, längd 6, not null.
f_password är av typen varchar, längd 15, not null.
Förresten, när jag ändå håller på att fråga, finns det någon fälttyp som klarar av ca 500 tecken?
Mycket tacksam för svar!
RED: Såg att jag var så klantig så jag hade gjort jämt bara lite fel med bilden, jag borde inte sitta uppe nu, för trött.
Palle Medlem sedan apr. 2000 3 174 inlägg Hur ser hela sql-satsen ut som du försöker skapa?
Den kom inte med helt i bilden du bifogade..
Gällande fälttyp som klarar ca 500 tecken:
Text klarar jubbet.
Manualen skrev:
In most respects, you can regard a TEXT column as a VARCHAR column that can be as big as you like.
M Mika3l Medlem sedan nov. 2001 8 492 inlägg Ja just det, text finns ju (får skylla på min trötthet igen )!
Är inte så lite svårt att få fram SQL-satsen, den jäkla rutan går inte att få bort utan att välja det jobbiga alternativet Cancel och då försvinner ju allt och jag måste skriva om det igen.
M Mika3l Medlem sedan nov. 2001 8 492 inlägg Så här ser det ut.
CREATE TABLE `tbl_AdminMembers` (`f_AMID` TINYINT (3) NOT NULL AUTO_INCREMENT, `f_firstname` VARCHAR (40) NOT NULL, `f_lastname` VARCHAR (40) NOT NULL, `f_birthYear` TINYINT (4) NOT NULL, `f_birthMonth` TINYINT (2) NOT NULL, `f_birthDay` TINYINT (2) NOT NULL, `f_sex` TINYTEXT (6) NOT NULL AUTO_INCREMENT, `f_worktitle` VARCHAR (20), `f_password` VARCHAR (15) NOT NULL AUTO_INCREMENT, `f_type` TINYINT (1) NOT NULL, `f_associationID` TINYINT (4) NOT NULL, `f_regdate` DATETIME (3), `f_regdateYear` TINYINT (4) NOT NULL, `f_regdateMonth` TINYINT (2) NOT NULL, `f_regdateDay` TINYINT (2) NOT NULL, `f_latestlogin` DATETIME (20), `f_adressType` VARCHAR (13) NOT NULL, `f_email` VARCHAR (25) NOT NULL, `f_phone` TINYINT (12) NOT NULL, `f_company` VARCHAR (40), `f_postcode` TINYINT (4) NOT NULL, `f_functions` TINYINT (3) UNSIGNED, `f_sections` VARCHAR (255), `f_education` VARCHAR (255), `f_distinctions` VARCHAR (255), `f_interests` VARCHAR (255), `f_note` VARCHAR (255), PRIMARY KEY(`f_AMID`), UNIQUE(
Error: 1064 - You have an error in your SQL syntax near '(6) NOT NULL AUTO_INCREMENT, `f_worktitle` VARCHAR (20), `f_password` VARCHAR (1' at line 1
Palle Medlem sedan apr. 2000 3 174 inlägg
.. TINYTEXT (6) NOT NULL AUTO_INCREMENT ..
Du kan inte sätta AUTO_INCREMENT på en string-type kolumn..
Ändra det så borde det lira bättre.
Pace Medlem sedan juni 2001 9 024 inlägg Det är en liten bugg i MySql-Front att vissa egenskaper kan associeras till datatyper som inte stöder dem. Annars är det ett ypperligt verktyg.
Dessutom, i din sql-fråga, datetime kan inte specifieras med längd.
DATETIME [s](3)[/s]
L LarsG Medlem sedan dec. 2000 12 464 inlägg Det är inte tillåtet att ange längd för text/tinytext. För int/tinyint är det inte relevant.
Yasmdf
M Mika3l Medlem sedan nov. 2001 8 492 inlägg Hmmm, märks att jag var trött, auto_increment på ett textfält...
Jaja, jag har försökt att få det att fungera men det vill sig inte riktigt nu heller.
You have an error in your SQL syntax near ') NOT NULL AUTO_INCREMENT, `f_firstname` VARCHAR () NOT NULL, `f_lastname` VARCH' at line 1
CREATE TABLE `tbl_AdminMembers` (`f_AMID` TINYINT () NOT NULL AUTO_INCREMENT, `f_firstname` VARCHAR () NOT NULL, `f_lastname` VARCHAR () NOT NULL, `f_birthYear` TINYINT () NOT NULL, `f_birthMonth` TINYINT () NOT NULL, `f_birthDay` TINYINT () NOT NULL, `f_sex` TINYTEXT () NOT NULL, `f_worktitle` VARCHAR (), `f_password` VARCHAR () NOT NULL, `f_type` TINYINT () NOT NULL, `f_associationID` TINYINT () NOT NULL, `f_regdateYear` TINYINT () NOT NULL, `f_regdateMonth` TINYINT () NOT NULL, `f_regdateDay` TINYINT () NOT NULL, `f_latestlogin` DATETIME (), `f_adressType` VARCHAR () NOT NULL, `f_email` VARCHAR () NOT NULL, `f_phone` TINYINT () NOT NULL, `f_company` VARCHAR (), `f_postcode` TINYINT () NOT NULL, `f_functions` TINYINT () UNSIGNED, `f_sections` VARCHAR (), `f_education` VARCHAR (), `f_distinctions` VARCHAR (), `f_interests` VARCHAR (), `f_note` VARCHAR (), PRIMARY KEY(`f_AMID`), UNIQUE(
L LarsG Medlem sedan dec. 2000 12 464 inlägg Ta bort () för alla utom varchar/char, dessa behöver en längd
M Mika3l Medlem sedan nov. 2001 8 492 inlägg Ville inte riktigt fungera nu heller, har tagit bort alla () korrekt vad jag kan se.
CREATE TABLE `tbl_AdminMembers` (`f_AMID` TINYINT NOT NULL AUTO_INCREMENT, `f_firstname` VARCHAR () NOT NULL, `f_lastname` VARCHAR () NOT NULL, `f_birthYear` TINYINT NOT NULL, `f_birthMonth` TINYINT NOT NULL, `f_birthDay` TINYINT NOT NULL, `f_sex` TINYTEXT NOT NULL, `f_worktitle` VARCHAR (), `f_password` VARCHAR () NOT NULL, `f_type` TINYINT NOT NULL, `f_associationID` TINYINT NOT NULL, `f_regdateYear` TINYINT NOT NULL, `f_regdateMonth` TINYINT NOT NULL, `f_regdateDay` TINYINT NOT NULL, `f_latestlogin` DATETIME, `f_adressType` VARCHAR () NOT NULL, `f_email` VARCHAR () NOT NULL, `f_phone` TINYINT NOT NULL, `f_company` VARCHAR (), `f_postcode` TINYINT NOT NULL, `f_functions` TINYINT UNSIGNED, `f_sections` VARCHAR (), `f_education` VARCHAR (), `f_distinctions` VARCHAR (), `f_interests` VARCHAR (), `f_note` VARCHAR (), PRIMARY KEY(`f_AMID`), UNIQUE(
You have an error in your SQL syntax near ') NOT NULL, `f_lastname` VARCHAR () NOT NULL, `f_birthYear` TINYINT NOT NULL, `f' at line 1
L LarsG Medlem sedan dec. 2000 12 464 inlägg Du måste ange en maxlängd för alla kolumner av typen varchar
`f_firstname` VARCHAR (245) NOT NULL
eller vilket värde du nu vill ha. Etc.
M Mika3l Medlem sedan nov. 2001 8 492 inlägg Fungerar inte nu heller av någon konstig anledning, får ett skumt felmeddelande också.
You have an error in your SQL syntax near '' at line 1
CREATE TABLE `tbl_AdminMembers` (`f_AMID` TINYINT NOT NULL AUTO_INCREMENT, `f_firstname` VARCHAR (40) NOT NULL, `f_lastname` VARCHAR (40) NOT NULL, `f_birthYear` TINYINT NOT NULL, `f_birthMonth` TINYINT NOT NULL, `f_birthDay` TINYINT NOT NULL, `f_sex` TINYTEXT NOT NULL, `f_worktitle` VARCHAR (20), `f_password` VARCHAR (15) NOT NULL, `f_type` TINYINT NOT NULL, `f_associationID` TINYINT NOT NULL, `f_regdateYear` TINYINT NOT NULL, `f_regdateMonth` TINYINT NOT NULL, `f_regdateDay` TINYINT NOT NULL, `f_latestlogin` DATETIME, `f_adressType` VARCHAR (13) NOT NULL, `f_email` VARCHAR (25) NOT NULL, `f_phone` TINYINT NOT NULL, `f_company` VARCHAR (40), `f_postcode` TINYINT NOT NULL, `f_functions` TINYINT, `f_sections` VARCHAR (255), `f_education` VARCHAR (255), `f_distinctions` VARCHAR (255), `f_interests` VARCHAR (255), `f_note` VARCHAR (255), PRIMARY KEY(`f_AMID`), UNIQUE(
Qimen Medlem sedan juni 2001 5 009 inlägg Mika3l: Lite off-topic men jag rekommenderar mascon för att skapa tabeller, ett helt perfekt program tycker jag. Bra överblick och jag har aldrig haft några problem där. Visst man tycker mysqlfront ska räcka (jag använder det med) men jag (säkert många andra med) får ofta problem med att skapa tabeller där.
M Mika3l Medlem sedan nov. 2001 8 492 inlägg Off topic eller ej, har du någon länk?
L LarsG Medlem sedan dec. 2000 12 464 inlägg Det är inte lämpligt att använda tinyint för primärnyckel, du kan bara lagra 127 poster i så fall.
CREATE TABLE `tbl_AdminMembers` (`f_AMID` INT NOT NULL AUTO_INCREMENT,
`f_firstname` VARCHAR (40) NOT NULL,
`f_lastname` VARCHAR (40) NOT NULL,
`f_birthYear` TINYINT NOT NULL,
`f_birthMonth` TINYINT NOT NULL,
`f_birthDay` TINYINT NOT NULL,
`f_sex` TINYTEXT NOT NULL,
`f_worktitle` VARCHAR (20),
`f_password` VARCHAR (15) NOT NULL,
`f_type` TINYINT NOT NULL,
`f_associationID` TINYINT NOT NULL,
`f_regdateYear` TINYINT NOT NULL,
`f_regdateMonth` TINYINT NOT NULL,
`f_regdateDay` TINYINT NOT NULL,
`f_latestlogin` DATETIME,
`f_adressType` VARCHAR (13) NOT NULL,
`f_email` VARCHAR (25) NOT NULL,
`f_phone` TINYINT NOT NULL,
`f_company` VARCHAR (40),
`f_postcode` TINYINT NOT NULL,
`f_functions` TINYINT,
`f_sections` VARCHAR (255),
`f_education` VARCHAR (255),
`f_distinctions` VARCHAR (255),
`f_interests` VARCHAR (255),
`f_note` VARCHAR (255),
PRIMARY KEY(`f_AMID`))
Det var lite avklippt i slutet . Om du vill ha något som unique så kan du lägga till det i efterhand.
M Mika3l Medlem sedan nov. 2001 8 492 inlägg Tack LarsG!
Hur fixar jag så att det blir unikt (gick inte att välja det och jag har inte precis någon vana att "koda databaser" )?
Testade med ALTER TABLE `tbl_adminmembers` CHANGE `f_AMID` `f_AMID` INT(11) NOT NULL AUTO_INCREMENT UNIQUE.
Fick inget felmeddelande men jag kan inte se om det gick eller ej (antar att det gick men det är lika bra att vara säker, hinner inte testa nu heller ).