字段没有插入或更新,在sql中的int类型

时间:2013-10-23 04:32:08

标签: mysql sql magento

我正在使用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'); 任何人都可以告诉我为什么设置查询不起作用,但第二个查询工作正常。所以我可以接受他的答案。谢谢你所有的帮助

3 个答案:

答案 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