[Kod] Domyślny ID w zapytaniach

0

install/install.php:669

$sql = 'INSERT INTO ' . ARTICLE_TABLE . ' VALUES ("", "Kategoria", 1, 1, 0, 0, 0, 0);';

Czy pierwszy parametr (ID) ma wartość "", a nie DEFAULT, z jakiegoś konkretnego powodu? MySQL 5.0 się przy tym wykłada, a DEFAULT jest przecież zgodne wstecz, nawet i z MySQL4.1?

0

DEFAULT to jest jakaś wartość domyślna, np: 0 lub 1 lub coś innego np Zenek

"" wstawia się jak jest autonumeracja, czyli kwerenda INSERT nie ma wpływu na wartość pola ID które zwykle jest następnym wolnym numerem.

0

No właśnie nie.

http://dev.mysql.com/doc/refman/5.1/en/data-type-defaults.html napisał(a)

Implicit defaults are defined as follows:
* For numeric types other than integer types declared with the AUTO_INCREMENT attribute, the default is 0. For an AUTO_INCREMENT column, the default value is the next value in the sequence.
[..]

Kiedyś było tak, że zarówno "" jak i DEFAULT pozwalały na następny wolny numer przy autonumeracji. Współcześnie tylko DEFAULT na to pozwala.

0

Hmm... chyba tak phpmyadmin wygenerowal - bez zadnego powodu. Na MySQL 4 to dziala (tzn. autonumeracja); jezeli na MySQL 5 dziala DEFAULT to mozesz poprawic :)

0

Tak się zastanawiam, czy nie lepszą opcją byłoby użycie pełniejszej składni i darowanie sobie defaultów czy innych ""? Mam na myśli coś takiego:
INSERT INTO nazwa_tabeli (pole2, pole8) VALUES (wartość2, wartość8);
W ten sposób wstawiamy istotne dla nas dane, resztę pozostawiając domyślnie niezależnie od tego, ile tam jeszcze różnych pól jest.

1 użytkowników online, w tym zalogowanych: 0, gości: 1