我試圖通過運行MariaDB(10.0.29)的其他服務器上的CONNECT引擎從MySQL表(5.5.45)中獲取Asterisk CDR記錄。MariaDB - CONNECT ENGINE - ORDER BY error
我可以輕鬆地創建表之間的連接:
CREATE TABLE `calls` engine=CONNECT table_type=MYSQL
CONNECTION='mysql://[email protected]/asteriskcdrdb/calls';
當我運行簡單的SELECT * FROM電話,一切都運行良好,當我加入一些WHERE條件,還是一切都還好吧。
但是當我添加ORDER BY列參數的問題開始,然後我從MariaDB的得到這個錯誤:
#1032 - Can't find record in 'calls'
我檢查MySQL的日誌,日誌MariaDB的 - 沒有錯誤可言。
我錯過了什麼嗎?
謝謝!
更新:整個查詢很簡單:
SELECT * FROM `calls` ORDER BY `calldate`
表結構:
CREATE TABLE `calls` (
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`uniqueid` varchar(32) NOT NULL default '',
`userfield` varchar(255) NOT NULL default '',
`recordingfile` varchar(255) NOT NULL default '',
`cnum` varchar(40) NOT NULL default '',
`cnam` varchar(40) NOT NULL default '',
`outbound_cnum` varchar(40) NOT NULL default '',
`outbound_cnam` varchar(40) NOT NULL default '',
`dst_cnam` varchar(40) NOT NULL default '',
`call_charge` float NOT NULL default '0',
`from_did` varchar(30) NOT NULL,
`did` varchar(50) NOT NULL default '',
`user_id` int(8) unsigned default NULL,
`client_id` int(8) unsigned default NULL,
KEY `IDX_UNIQUEID` (`uniqueid`),
KEY `src` (`src`),
KEY `dst` (`dst`),
KEY `calldate` (`calldate`),
KEY `uniqueid` (`uniqueid`),
KEY `userfield` (`userfield`),
KEY `from_did` (`from_did`),
KEY `user_id` (`user_id`),
KEY `client_id` (`client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
更新#2:更新的表名,要不要混淆,但這不是問題。 CONNECTION表已創建好。
查詢工作:
SELECT * FROM `calls`
查詢工作:
SELECT * FROM `calls` WHERE `user_id`=X
查詢返回錯誤:
SELECT * FROM `calls` ORDER BY `calldate`
Update#3: MySQL已更新爲veriosn 5.5.45,類型更改爲InnoDB,字符集轉換爲UTF8。但沒有成功。
問題解決了 嗯,這是MariaDB的錯誤,當我改FederatedX引擎(這基本上是CONNECT的點點有限的版本),一切正常。
你可以添加完整的查詢和表的例子嗎? –
@DaniloBustos更新了我原來的帖子,對不起。 –
表名是'cdr'? –