Autor Zpráva
Anonymní
Profil *
zdravim. preco ked napisem INSERT INTO ludia VALUES(20, "ja", "ty", "on") mi PgSQL vrati


SQL chyba:

ERROR: column "ja" does not exist

Vo výraze:
INSERT INTO ludia VALUES(20, "ja", "ty", "on")


predtym som vytvoril tabulku

CREATE TABLE ludia (

id smallint NOT NULL PRIMARY KEY,
Meno char(255),
Priezvisko char(255),
Vek char(255))
Hugo
Profil
Anonymní

Použij místo uvozovek apostrofy.
Anonymní
Profil *
este jedna otazocka - ako mam zistit najvacsie id (primary key) ? aby som potom k nemu mohol pridat 1 a zapisat. skusal som
"SELECT Max(id)+1 FROM ludia" ale vracialo to nejake divne hodnoty. Nakoniec som to vyriesil tak :


$pg_connection = Pg_Connect("host=$pg_host dbname=$pg_dbname user=$pg_user password=$pg_pass");
$pg_result = Pg_Exec($pg_connection, "SELECT * FROM ludia");

if ($_GET[action] == "add")
{
$pg_biggest_id = 0;

for ($i = 0; $i < Pg_NumRows($pg_result); $i++)
{
$pg_entry = Pg_Fetch_Array($pg_result, $i);
if ($pg_entry["id"] > $pg_biggest_id)
{
$pg_biggest_id = $pg_entry["id"];
}
}

$pg_id = $pg_biggest_id + 1;
Pg_Exec($pg_connection, "INSERT INTO ludia VALUES ($pg_id, '" . $_GET["meno"] . "', '$_GET[priezvisko]', '$_GET[vek]')");
Pg_Close($pg_connection);
Header("Location: ./");


ale to mi pride trochu tazkopadne a pomale. neda sa to vyriesit nejakym SQL dotazom alebo nejako rychlejsie ? dik
medden
Profil *
Anonymní
Pokiaľ som pochopil, tak chcete niečo ako auto_increment v mysql. To sa rieši pokiaľ si spomínam cez sekvencie (sequence) alebo cez typ serial. Viac google (skúste niečo ako postgre auto_increment)
Kajman_
Profil *
Možná by stačilo přidat alias pro ten sloupeček.
SELECT MAX(id)+1 dalsi FROM ludia

Ale sekvence jsou lepší.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0