I’ve tried to create a table (for my guestbook) with an auto increment column. Here’s my statement:
CREATE TABLE guestbook(id mediumint(8) NOT NULL KEY(PRI) default(0) auto_increment, name varchar(30) NOT NULL,email varchar(30) NOT NULL,comments text NOT NULL);
Why doesn’t it work?
If you’re using SQL Server, you need to make minor changes to your create table statement in order to create the guestbook table:
- The id column should be specified as int with no size. There’s no medium int data type in SQL Server. The int data type allows values up to 2,147,483,647. You could use the smallint data type allowing values up to 32,767, but it’s worth the extra two bytes not to worry about outgrowing the column.
- You gain the auto_increment capability by using the IDENTITY attribute on a column. This attribute increments the column value each time a record is inserted. The syntax is:
IDENTITYYou can provide a starting value and a value to increment by—the default is 1,1 if none are specified.
- The primary key constraint must be defined with the keywords “PRIMARY KEY.”
The modified statement looks like this:
CREATE TABLE guestbook(id int NOT NULL IDENTITY (1,1) PRIMARY KEY, name varchar(30) NOT NULL,email varchar(30) NOT NULL,comments text NOT NULL);