我的应用程序使用主/从数据库,有两个从数据库,一个用于sphinx,一个用于用户,并根据规则1主数据库 从属数据库设置为只读。问题是,当我在从服务器上重建sphinx时,它给出了一个错误 The MySQL server is running with the --read-only option so it cannot execute this statement 我该如何解决这个问题?
我有一个有点长的MySQL ETL语句,其中我要将32列数据插入到一个表中。此ETL语句还将UNION用作派生表。
我的代码与此类似,如MySQL参考手册中所定义的:
INSERT INTO t1 (a, b, ... "32 columns total")
SELECT * FROM
(SELECT a, b, ... FROM t2
LEFT JOIN t3 on t2.id = t3.id
UNION
SELECT a, b, ... FROM t2
RIGHT JOIN t3 on t2.id = t3.id
) AS
我正在处理增量更新脚本,每次尝试使用此命令时:
SELECT id, title, search
FROM related
WHERE id >
(
SELECT max_doc_id
FROM sphinx_delta
WHERE counter_id = 2
)
在phpMyAdmin中运行它将返回10个结果。
SELECT id, title, search
FROM related
WHERE id > 1010
在phpMyAdmin中运行它将返回相同的10个结果。当然,子选择返回的值是1010。
唯一的问题是,当我在Sphinx搜索中使用第一个查询时
在某些版本的mysql (例如5.0.77, for Win32 (ia32))上,我在执行以下查询时遇到问题
ALTER TABLE `table_name` CHANGE COLUMN `old` `new` integer auto_increment
我去找Incorrect table definition; there can be only one auto column and it must be defined as a key
这怎么能省略呢?
首先,一些必要的背景(请,请容忍我)。我是一个web应用程序的开发人员,为了坚持,我使用MySQL。我们通过为每个数据表创建一个审计跟踪表来实现审计日志记录。例如,我们可能对客户实体有以下表定义:
-- Data table definition.
CREATE TABLE my_database.customers (
CustomerId INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
FirstName VARCHAR(255) NOT NULL,
LastName VARCHAR(255) NOT NULL,
-- More d