sqlpro重复输入错误

时间:2016-02-14 18:27:19

标签: mysql sql

我刚学习sqlpro而且我完全被难倒了。

我正在尝试这样做:

insert into vehicleModel(vehicleModel)
(select distinct(model) from vehicle
order by model);

我一直这样 -

  

重复输入'Express 2500 2WD Conversion Ca'用于关键'vehicleModel'

如果我跑这个 -

select * from vehicle
where model = 'Express 2500 2WD Conversion Ca';

我一无所获。

有什么建议吗?

表定义是:

create table vehicleModel (
   vehicleModelid int not null auto_increment, 
   vehicleModel varchar(30) not null, 
   primary key (vehicleModelid) 
)
engine = InnoDB default charset=latin1;

我从这里拉 -

CREATE TABLE `vehicle` (
  `vehicleId` int(11) NOT NULL DEFAULT '0',
  `make` varchar(255) DEFAULT NULL,
  `model` varchar(255) DEFAULT NULL,
  `year` int(11) DEFAULT NULL,
  `cylinders` int(11) DEFAULT NULL,
  `displacement` varchar(255) DEFAULT NULL,
  `drive` varchar(255) DEFAULT NULL,
  `engId` int(11) DEFAULT NULL,
  `eng_dscr` varchar(255) DEFAULT NULL,
  `trany` varchar(255) DEFAULT NULL,
  `mpgHighway` varchar(255) DEFAULT NULL,
  `mpgCity` varchar(255) DEFAULT NULL,
  `fuelCostAnnual` int(11) DEFAULT NULL,
  `fuelType` varchar(255) DEFAULT NULL,
  `fuelType1` varchar(255) DEFAULT NULL,
  `VClass` varchar(255) DEFAULT NULL,
  `mpgh` decimal(10,2) DEFAULT NULL,
  `mpgc` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`vehicleId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

1 个答案:

答案 0 :(得分:0)

编辑:您的文字被截断为30个最大字符。很可能是vehicle.model中有两个模型,一旦被截断,就会有相同的值。

首先检查表中是否已有条目。您检查的查询显示不正确,因此您将使用此命令:

SELECT * FROM vehicleModel WHERE vehicleModel = 'Express 2500 2WD Conversion Ca';

表中可能已存在该记录,这就是您无法插入副本的原因。

您可以删除此记录或表格中的所有记录,然后再次尝试插入,例如:

DELETE FROM vehicleModel WHERE vehicleModel = 'Express 2500 2WD Conversion Ca';
INSERT INTO vehicleModel (vehicleModel) (SELECT DISTINCT model FROM vehicle ORDER BY model);