我不确定这是什么错误!#1292 - 截断了不正确的 DOUBLE 值:我没有双精度值字段或数据!我浪费了整整一个小时试图弄清楚这一点!这是我的查询 INS...
我不确定这个错误是什么!
#1292 - Truncated incorrect DOUBLE value:
我没有双值字段或数据!
我浪费了整整一个小时来弄清楚这一点!
这是我的疑问
INSERT INTO call_managment_system.contact_numbers
(account_id, contact_number, contact_extension, main_number, created_by)
SELECT
ac.account_id,
REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') AS Phone,
IFNULL(ta.ext, '') AS extention,
'1' AS MainNumber,
'2' AS created_by
FROM
cvsnumbers AS ta
INNER JOIN accounts AS ac ON ac.company_code = ta.company_code
WHERE
LENGTH(REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') ) = 10
这是我展示的创建表,结果将进入该表
CREATE TABLE `contact_numbers` (
`number_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`account_id` int(10) unsigned NOT NULL DEFAULT '0',
`person_id` int(11) NOT NULL DEFAULT '0',
`contact_number` char(15) NOT NULL,
`contact_extension` char(10) NOT NULL DEFAULT '',
`contact_type` enum('Primary','Direct','Cell','Fax','Home','Reception','Office','TollFree') NOT NULL DEFAULT 'Primary',
`contact_link` enum('Account','PDM','Other') NOT NULL DEFAULT 'Account',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0 = inactive, 1=active',
`main_number` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1 = main phone number',
`created_on` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`created_by` int(11) NOT NULL,
`modified_on` datetime DEFAULT NULL,
`modified_by` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`number_id`),
KEY `account_id` (`account_id`),
KEY `person_id` (`person_id`)
) ENGINE=InnoDB AUTO_INCREMENT=534 DEFAULT CHARSET=utf8
当我收到此错误时,我相信这是一个错误,但是您应该记住,如果您使用 SELECT 语句和相同的 WHERE 子句执行单独的查询,那么您可以从该 SELECT: SELECT CONCAT(primary_id, ',')
) 语句中获取主 ID,并将它们插入到失败的 UPDATE 查询中,条件为 -> \'WHERE [primary_id] IN ([来自 SELECT 语句的逗号分隔的主 ID 列表)\',这使您可以缓解由原始(失败)查询的 WHERE 子句引起的任何问题。
就我个人而言,当我使用引号对 'WHERE ____ IN ([此处的值])' 中的值进行括起来时,预期的 300 个条目中只有 10 个受到了影响,在我看来,这似乎是一个错误。