Mysql оператор для вставки строк в нижней части таблицы вместо позиции, где была удалена последняя строка? - PullRequest
0 голосов
/ 11 июля 2011

Я только что удалил строку из моей таблицы MySQL.

Теперь, когда я пишу оператор «INSERT INTO myTable», новая строка добавляется в позицию в таблице, где была удалена последняя строка.

Как мне изменить оператор "INSERT INTO myTable", чтобы строки добавлялись в конец таблицы?

EDIT:

Для пояснения, это php-код, который я использую для печати материала в базе данных

$result = mysql_query("SELECT * FROM People") 
or die(mysql_error());  

echo "<table border='1'>";
echo "<tr><th>FirstName</th> <th>LastName</th></tr>";

while($row = mysql_fetch_array( $result )) {
    // Print out the contents of each row into a table
    echo "<tr><td>"; 
    echo $row['FirstName'];
    echo "</td><td>"; 
    echo $row['LastName'];
    echo "</td></tr>";
} 
echo "</table>";

И он печатает последнюю строку, которую я добавил в середине таблицы, в той же позиции, что и последняя строка, которую я удалил.

Ответы [ 2 ]

4 голосов
/ 11 июля 2011

Я могу только предположить, что вы имеете в виду порядок записей, возвращаемых в SELECT без ORDER BY. Вы не должны полагаться на этот заказ вообще. Другая СУБД или даже другая версия или конфигурация MySQL могут вести себя по-разному.

Добавьте идентификатор из последовательности и выберите записи, упорядоченные по этому полю, если у вас нет чего-то монотонного.

4 голосов
/ 11 июля 2011

Это на самом деле зависит от механизма хранения и первичного ключа. Но лучше не полагаться на физический порядок данных, а указывать ORDER BY в своих запросах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...