Lưu trữ của chuyên mục 'database'

Chọn các bản ghi từ 2 tháng trở lại đây

Oracle:

Mailing có một vấn đề: các record cũ quá 2 tháng thì không nên dùng lại theo đề nghị của nhóm.

SELECT created_dtime FROM requests
WHERE status = 0 AND created_dtime > LAST_DAY(ADD_MONTHS(SYSDATE, -2))

Trước hết là xóa các record trong tháng cách đây 2 tháng:

DELETE FROM requests
WHERE status = 0
AND created_dtime < LAST_DAY(ADD_MONTHS(SYSDATE, -2))

Backup MySQL

Step 1:

mysqldump --single-transaction -uroot -p --all-databases --master-data=1 > all_databases.sql

Step 2:

mysql -uroot < all_databases.sql

Database server farm and synchronization

Tìm được công cụ này làm việc đồng bộ hóa dữ liệu trên nhiều server. Sau này sẽ cần đến các máy chủ read và một máy chủ master (write/read): http://symmetricds.org/

Việc đồng bộ hóa giữa master và master thì có công cụ này: http://blog.kovyrin.net/2007/04/23/master-master-replication-example-using-mmm/

http://datacharmer.org/

MySQL and JSON

SELECT
CONCAT("[",
GROUP_CONCAT(
CONCAT("{username:'",username,"'"),
CONCAT(",email:'",email),"'}")
)
,"]")
AS json FROM users;

To

[
{username:'mike',email:'mike@mikesplace.com'},
{username:'jane',email:'jane@bigcompany.com'},
{username:'stan',email:'stan@stanford.com'}
]

Thanks to http://www.thomasfrank.se/mysql_to_json.html

Oracle table case-sensitive

Table in-case-sensitive

SELECT * FROM myusers

Table case-sensitive

select table_name from user_tables where table_name='MYUSERS';

Oracle’s REPLACE

Chương trình mailing đột nhiên ngừng chạy. Thì ra hồi tháng 7 mình có patch đoạn convert kí tự đặc biệt về html printable khiến cho các email trở nên có định dạng “”"Phan Huong”"<phan@xxx.com>”

Biểu thức đại diện vẫn match đây là email nhưng đem chuỗi này làm chỉ mục để match với thông tin cấu hình mà hôm nay code vào thì die soon. Buồn là có đến 1700+ thư bị kiểu này kể từ bản patch hồi tháng 7 mà không test.

Oracle REPLACE là cứu cánh.

UPDATE pdf_requests
SET reply_to = REPLACE(reply_to, '"', '"')
where reply_to like '"%'


UPDATE pdf_requests
SET reply_to = REPLACE(reply_to, '<', '<')
where reply_to like '%<%'


UPDATE pdf_requests
SET reply_to = REPLACE(reply_to, '>', '>')
where reply_to like '%>%'