我刚学习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;
答案 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);