Mysql数据库没有创建表[凌乱的代码]

时间:2013-12-27 18:40:01

标签: mysql

我试着添加这个:

   -- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Nov 09, 2013 at 04:43 PM
-- Server version: 5.5.16
-- PHP Version: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `rezzion`
--

-- --------------------------------------------------------

--
-- Table structure for table `punishments`
--

CREATE TABLE IF NOT EXISTS `punishments` (
  `username` varchar(20) NOT NULL AUTO_INCREMENT,
  `punisher` varchar(20) NOT NULL,
  `server` varchar(15) NOT NULL,
  `type` int(255) NOT NULL,
  `date` varchar(1024) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

到我的数据库“rezzion”&出于某种原因,我收到了这个错误:

enter image description here

任何人都知道为什么这样做?我将我的数据库设置为utf8-bin&它的名字是rezzion ...我很困惑为什么上面的代码不起作用?

3 个答案:

答案 0 :(得分:4)

你的错误开始了,至少在这里:

`username` varchar(20) NOT NULL AUTO_INCREMENT,

MySQL中不允许这样做。此外,您还要在另一栏中声明主键:

PRIMARY KEY (`id`)

答案 1 :(得分:2)

自动增量只能用于INT,将其更改为整数并解决您的问题

答案 2 :(得分:0)

AUTO_INCREMENT我只能用于数字类型。您正在将其应用于VARCHAR列。此外,您指定“id”列作为主键,但不存在。

您可能希望它看起来像这样:

CREATE TABLE IF NOT EXISTS `punishments` (
  `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `username` varchar(20) NOT NULL,
  `punisher` varchar(20) NOT NULL,
  `server` varchar(15) NOT NULL,
  `type` int(255) NOT NULL,
  `date` varchar(1024) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;