Üretim veritabanımızdaki bazı INNODB tabloları 2147483647 INT AUTO_INCREMENT sınırına ulaşmak üzereler ve bunları BIGINT olarak değiştirmemiz gerekiyor, aksi takdirde yazma işlemleri başarısız olmaya başlayacaktır.
Tablolar Amazon RDS üzerinde çalışan bir üretim MySQL 5.6.19a veritabanındadır.
Her zaman gerçekleşen üretim okumalarını ve uçlarını bozmadan böyle bir ALTER'i nasıl yapabiliriz?
ALTER TABLE MYTABLE
CHANGE id
id
BIGINT NULL DEĞİL AUTO_INCREMENT;
İşte tablo için DDL:
CREATE TABLE `MYTABLE` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`siteId` int(11) NOT NULL,
`filter` varchar(10) NOT NULL DEFAULT 'ALL',
`date` varchar(10) NOT NULL,
`cards` varchar(250) NOT NULL,
`apples` varchar(45) NOT NULL,
`carrots` varchar(45) NOT NULL,
`corn` varchar(45) NOT NULL,
`peas` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique` (`siteId`,`filter`,`date`,`cards`),
KEY `date_k` (`date`),
KEY `cards_k` (`cards`),
KEY `apples_k` (`apples`),
KEY `siteId_k` (`siteId`)
) ENGINE=InnoDB AUTO_INCREMENT=1748961482 DEFAULT CHARSET=utf8