我已经在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
答案 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类型的声明长度表示您要存储的最大字符数。