CREATE TABLE [tabellnamn] (
[fältnamn1] [fälttyp] [NULL/NOT NULL],
[fältnamn2] [fälttyp] [NULL/NOT NULL],
PRIMARY KEY([fält])
);
Där har du strukturen, så det är bara att lägga till dina egna fält... :)
18 svar · 564 visningar · startad av ampy
Hur skapar man en tabell genom kod. Tabellen ska se ut så här:
ID - Räknare
medlem - Text
medlem_id - Tal
datum - Datum/Tid
rubrik - PM
text - PM
godkann - Text
Tabellen ska heta artiklar.
Tabellen ska skapas i en access-databas. Hoppas någon kan skriva koden för detta.
CREATE TABLE [tabellnamn] (
[fältnamn1] [fälttyp] [NULL/NOT NULL],
[fältnamn2] [fälttyp] [NULL/NOT NULL],
PRIMARY KEY([fält])
);
Där har du strukturen, så det är bara att lägga till dina egna fält... :)
Man ska skriva fälttyperna på engelska va?
medlem_id - Tal --> int(5)
datum - Datum/Tid --> datetime
rubrik - PM --> memo
godkann - Text --> text(50)
RED: Glömde räknaren:
ID - Räknare --> ID counter(10)
Har du gjort denna kod:
<%
sql = "CREATE TABLE [artiklar] ([ID] [counter(10)], [medlem] [TEXT(50)] [NOT NULL], [medlem_id] [INT(5)] [NOT NULL], [datum] [DATETIME] [NOT NULL], [rubrik] [MEMO] [NOT NULL], [text] [MEMO] [NOT NULL], [godkann] [TEXT(50)] [NOT NULL])"
Connect.execute(sql)
%>
Då får jag
Microsoft JET Database Engine fel '80040e14'
Syntaxfel i fältdefinition.
/80/Default.asp, line 382
vad är felet?
Är jag inte helt ute och turnerar ska du inte ha [...] runt fälttypen och attribten null/not null. Och använder du NOT NULL måste du väl ange ett defaultvärde?
Hur anger man ett defaultvärde då?
Men om jag skriver så här:
<%
sql = "CREATE TABLE [artiklar] ([ID] counter(10), [medlem] TEXT(50) NOT NULL, [medlem_id] INT(5) NOT NULL, [datum] DATETIME NOT NULL, [rubrik] MEMO NOT NULL, [text] MEMO NOT NULL, [godkann] TEXT(50) NOT NULL)"
Connect.execute(sql)
%>
Så får jag detta felmeddelande:
Microsoft JET Database Engine fel '80040e14'
Syntaxfel i CREATE TABLE-instruktion.
/80/Default.asp, line 383
Ursprungligen av @nders
Och använder du NOT NULL måste du väl ange ett defaultvärde?
Nej.
Hittar access på ett eget då eller?
Nej, vad ska du ha defaultvärdet till?
Access måste inte ha ett defaultvärde till not null-kolumner, men däremot måste varje post få ett värde vid insert.
ampy, prova:
<%
sql = "CREATE TABLE [artiklar] ([ID] counter NOT NULL, [medlem] TEXT(50) NOT NULL, [medlem_id] INT NOT NULL, [datum] DATETIME NOT NULL, [rubrik] MEMO NOT NULL, [text] MEMO NOT NULL, [godkann] TEXT(50) NOT NULL)"
Connect.execute(sql)
%>
Mvh,
Koden funkar nu @nders. Men hur ska jag göra så att kolumnen ID blir primärnyckeln?
Det borde gå bra att i sin CREATE TABLE-instruktion använda PRIMARY KEY.
sql = "CREATE TABLE [artiklar] ([ID] counter NOT NULL PRIMARY KEY, .....
Om du inte vill skapa om tabellen får du använda ALTER TABLE på något sätt. Det är inte en syntax jag har i huvudet, så prova att söka här på wF. Jag vet att ALTER TABLE diskuterats ett flertal tillfällen.
Mvh,
Jag vet inte om ampy har fått det att fungera nu, men PRIMARY KEY ska enligt SQL-standarden ( Väl? ) stå sist i frågan;
CREATE TABLE minTabell (
mittFält COUNTER NOT NULL,
mittAndraFält TEXT NULL,
PRIMARY KEY(mittFält)
);
ALTER TABLE fungerar så här:
ALTER TABLE [tabell] ADD [fältnamn] [typ] [NULL/NOT NULL]
Exempel:
ALTER TABLE minTabell ADD mittTredjeFält INT NOT NULL
Primary Key måste väl ändå skrivas i anslutning till det fält man önskar göra till primärnyckel?
@nders: Nej
Spin: Nej
Jaså, är det så spännande
Om det bara är en kolumn i primärnyckeln så kan man skriva
create table ogrish (aleb int primary key);
Det är också tillåtet att skriva
create table ogrish (aleb int,primary key(aleb))
Om man har flera kolumner i primärnyckeln så måste man använda den senare varianten
create table ogrish (aleb int, bleb dec,primary key(aleb,bleb))
Om du har lust får du gärna fortsätta på det inlägget. ;)
Jo, det är klart det är intressant. Jag som är självlärd har inte så bra koll på hur saker och ting fungerar, utan har mest ett hum om hur man kan göra. I detta fall verkade jag humma lite fel... ;)
Red: nu hade du visst fortsatt. :)
Mvh,