我正在使用magento平台。我遇到了关于特定字段的值插入的问题:我的查询运行完美,但是一个特定的列不适用于任何查询。我尽我所能但却没有找到原因。当我更改时列类型从int到varchar类型它的工作原理。这是我的表结构。
CREATE TABLE `followupemails_emaillogs` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`schedule_time` datetime DEFAULT NULL,
`sent_time` datetime DEFAULT NULL,
`email_status` varchar(100) DEFAULT NULL,
`client_name` varchar(250) DEFAULT NULL,
`client_email` varchar(250) DEFAULT NULL,
`followupemails_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=latin1.
“followupemails_id”列在插入和更新查询中不起作用。这是一个更新查询,其中存在id(29)的记录。 UPDATE followupemails_emaillogs SET followupemails_id=5 WHERE id =29
。
这是插入查询INSERT INTO followupemails_emaillogs SET followupemails_id=4, schedule_time='2013-10-23 08:10:00', email_status='pending', client_name='ayaz ali'
。这在小提琴上工作得很好但在我的sqlyog上没有?可能是什么问题。最后我发现完美的查询
.INSERT INTO followupemails_emaillogs (followupemails_id,schedule_time,email_status,client_name,client_email) VALUES (26,'2013-10-23 08:10:00','pending','ayaz ali','mamhmood@yahoo.com');
任何人都可以告诉我为什么设置查询不起作用,但第二个查询工作正常。所以我可以接受他的答案。谢谢你所有的帮助
答案 0 :(得分:2)
试试这个
创建,
CREATE TABLE followupemails_emaillogs (
id int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
schedule_time datetime DEFAULT NULL,
sent_time datetime DEFAULT NULL,
email_status varchar(100) DEFAULT NULL,
client_name varchar(250) DEFAULT NULL,
client_email varchar(250) DEFAULT NULL,
followupemails_i int(11) DEFAULT NULL,
UNIQUE (id)
)
要插入,
INSERT INTO followupemails_emaillogs (schedule_time,sent_time,email_status,client_name,client_email,followupemails_i)
VALUES
('2012-05-05','2012-05-06',"sent","sagar","sagar@xxxx.com",2)
答案 1 :(得分:0)
在int运算符的sql查询中不需要(11),这个获取nvarchar,varchar数据类型列的长度只是一个int数据类型,所以改变并写 { {1}} 而不是
int
和int(11)
尝试此查询而不是您的查询
int(8)
答案 2 :(得分:0)
整个查询都没问题
CREATE TABLE `followupemails_emaillogs` (
`id` int NOT NULL AUTO_INCREMENT,
`schedule_time` datetime DEFAULT NULL,
`sent_time` datetime DEFAULT NULL,
`email_status` varchar(100) DEFAULT NULL,
`client_name` varchar(250) DEFAULT NULL,
`client_email` varchar(250) DEFAULT NULL,
`followupemails_id` int DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=latin1.
但最后有一个实际上是错误的点,所以删除点并创建表
latin1.
所以删除点符号并且在id字段中不为null使用此行默认字段为null所以不要使用默认值
id int (8) AUTO_INCREMENT
CREATE TABLE `followupemails_emaillogs` (
`id` int (8) AUTO_INCREMENT,
`schedule_time` datetime DEFAULT NULL,
`sent_time` datetime DEFAULT NULL,
`email_status` varchar(100),
`client_name` varchar(250),
`client_email` varchar(250),
`followupemails_id` int,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=latin1