0

I have problem with this query.

 $query = 'CREATE TABLE movie(
    movie_id UNSIGNED INTEGER NOT NULL AUTO_INCREMENT,
    movie_name VARCHAR(255) NOT NULL,
    movie_type TINYINT NOT NULL DEFAULT 0,
    movie_year SMALLINT UNSIGNED NOT NULL DEFAULT 0,
    movie_leadactor INTEGER UNSIGNED NOT NULL DEFAULT 0,
    movie_director INTEGER UNSIGNED NOT NULL DEFAULT 0,

    PRIMARY KEY (movie_id),
    KEY movie_type (movie_type, movie_year)
    )
    ENGINE=MyISAM';
 $result = mysql_query($query, $db) or die(mysql_error($db));

it still write this:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNSIGNED INTEGER NOT NULL AUTO_INCREMENT, movie_name VARCHAR(255) NOT NULL, ' at line 2

Naftali
  • 144,921
  • 39
  • 244
  • 303
Tom11
  • 2,419
  • 8
  • 30
  • 56

3 Answers3

3

Unsigned must come after int. I rewrote your query and verified that it does work now.

CREATE TABLE movie(
movie_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
movie_name VARCHAR(255) NOT NULL,
movie_type TINYINT NOT NULL DEFAULT 0,
movie_year SMALLINT UNSIGNED NOT NULL DEFAULT 0,
movie_leadactor INT UNSIGNED NOT NULL DEFAULT 0,
movie_director INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (movie_id),
KEY movie_type (movie_type, movie_year)
)
ENGINE=MyISAM
Jordan Mack
  • 8,223
  • 7
  • 30
  • 29
0

MySQL's integer type is called INT, not INTEGER.

ceejayoz
  • 176,543
  • 40
  • 303
  • 368
0

Try this, your INTEGER can be written as INT and you put the UNSIGNED variable before it, it needs to go after -

$query = 'CREATE TABLE movie(
`movie_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`movie_name` VARCHAR(255) NOT NULL,
`movie_type` TINYINT NOT NULL DEFAULT 0,
`movie_year` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
`movie_leadactor` INTEGER UNSIGNED NOT NULL DEFAULT 0,
`movie_director` INTEGER UNSIGNED NOT NULL DEFAULT 0,

PRIMARY KEY (movie_id),
KEY movie_type (movie_type, movie_year)
)
ENGINE=MyISAM';
$result = mysql_query($query, $db) or die(mysql_error($db));
Lucas
  • 1,476
  • 13
  • 20