Надо изменить таблицу

jeka!

Просто Member
Надо изменить таблицу

1) Есть такой вопрос, что случается с новыми данными если таблицу создать с параметром MAX_ROWS?
Новые данные будут вытеснять старые или просто откажутся добавляться?

2) Как изменить таблицу, добавив этот параметр, чтобы не пересоздавать заново? ALTER как?
 

Falc

Новичок
jeka!
MAX_ROWS - влияет только на размер индексов, если у тебя записей станет больше чем MAX_ROWS, то могут начать глючить выборки.
>>2) Как изменить таблицу, добавив этот параметр, чтобы не пересоздавать заново? ALTER как?
http://www.mysql.com/doc/ru/ALTER_TABLE.html
 

Апельсин

Оранжевое создание
> Новые данные будут вытеснять старые или просто откажутся добавляться?

ошибку получишь. Что-то вроде 'table bla-bla-bla is full'.
 

jeka!

Просто Member
Ну и как тогда мне сделать таблицу с фиксированным колличеством строк?
У меня задача сделать таблицу что в ней всегда находилось 100000 записей, и при добавлении новых, старые(первые) записи удалялись.
Ни одно значение типа INT не позволяет ограничить на этом пределе, только SMALLINT = 65535, это очень мало, а MEDIUMINT уже слишком много.

Вот пример таблицы:

CREATE TABLE gallery (
id SMALLINT(5) unsigned zerofill NOT NULL auto_increment,
cid tinyint(2) unsigned zerofill NOT NULL default '00',
url varchar(200) NOT NULL default '',
create date NOT NULL default '0000-00-00',
numimg tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (id),
UNIQUE KEY url (url),
KEY cid (cid)
) TYPE=MyISAM;


>>2) Как изменить таблицу, добавив этот параметр, чтобы не пересоздавать заново? ALTER как?
http://www.mysql.com/doc/ru/ALTER_TABLE.html

Я это читал, и не врубился как строится такой запрос...
Примеров нет.
 

Апельсин

Оранжевое создание
> Ну и как тогда мне сделать таблицу с фиксированным колличеством строк?

по большому счету - только периодически проверять кол-во строк в таблице.
MAX_ROWS не для того используется.
 

Ropez

Guest
добавь AUTO_INCREMENT поле в таблицу и после каждой вставки или через определенное их кол-во делай:

'select id2 from gallery order by id2 desc limit 10000,1'

и с полученым значением:

'delete from gallery where id2<'.$value
 

Falc

Новичок
Ropez
А если удалить запись в таблице придется?

Только считать записи.
 
Сверху