phpMyAdmin从工作台导入模式

时间:2014-02-27 12:09:48

标签: mysql phpmyadmin mysql-workbench

我已经在mySQLWorkbench中为数据库创建了一个模式,我试图将其导入phpMyAdmin,但它在我的代码中发现了一个错误。我尝试了几个在线sql验证器,它们也标记了同样的错误。我无法看到错误,也无法查看我的工作台设置可能出现的问题。 我的架构的开始

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ALLOW_INVALID_DATES';

DROP SCHEMA IF EXISTS `travelapp` ;
CREATE SCHEMA IF NOT EXISTS `travelapp` DEFAULT CHARACTER SET utf8 ;
USE `travelapp` ;

-- -----------------------------------------------------
-- Table `travelapp`.`Address`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `travelapp`.`Address` (
  `address_id` INT NOT NULL AUTO_INCREMENT,
  `line_1` VARCHAR(45) NULL,
  `line_2` VARCHAR(45) NULL,
  `street_name` VARCHAR NOT NULL,
  `town` VARCHAR(45) NOT NULL,
  `district` VARCHAR(45) NOT NULL,
  `phone` VARCHAR(45) NULL,
  PRIMARY KEY (`address_id`))
ENGINE = InnoDB;

这是我得到的错误

MySQL said: Documentation

#1064 - 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 'NOT NULL,
  `town` VARCHAR(45) NOT NULL,
  `district` VARCHAR(45) NOT NULL,
  `p' at line 8 

2 个答案:

答案 0 :(得分:0)

您需要在以下位置指定长度:

`street_name` VARCHAR NOT NULL,

在上面的代码中。 使用此:

`street_name` VARCHAR(10) NOT NULL,
                      ^^^ give the length

错误就在这里。

答案 1 :(得分:0)

您尚未指定varchar

street_name字段的长度

尝试:

CREATE TABLE `travelapp`.`address` (
  `address_id` int(11) NOT NULL AUTO_INCREMENT,
  `line_1` varchar(45) DEFAULT NULL,
  `line_2` varchar(45) DEFAULT NULL,
  `street_name` varchar(45) NOT NULL, -----> Here
  `town` varchar(45) NOT NULL,
  `district` varchar(45) NOT NULL,
  `phone` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`address_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

CHAR和VARCHAR类型的声明长度表示您要存储的最大字符数。

参考:https://dev.mysql.com/doc/refman/5.6/en/char.html