Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko kreiranja tabele u MySQL-u

[es] :: MySQL :: Pomoc oko kreiranja tabele u MySQL-u

[ Pregleda: 1367 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zeko_sisko
Kobe Bryant

Član broj: 224214
Poruke: 14
*.teol.net.



+1 Profil

icon Pomoc oko kreiranja tabele u MySQL-u04.10.2011. u 18:34 - pre 122 meseci
Problem je u sledecem.
Hocu da napravim dvije tabele koje imaju identicne kolone, s tim da u prvoj tabeli, koja sadrzi kolonu id_zap koja je primarni kljuc, mogu uci samo vrijednosti tipa int koje su manje od 100. Slicno tome, da u drugu tabelu, u kolonu id_zap mogu uci samo vrijednosti vece od 99. Evo jednog dijela koda:

Code:
CREATE TABLE odjeljenja (
  sif_odj char(5) NOT NULL,
  naziv_odj varchar(20) NOT NULL,
  PRIMARY KEY (sif_odj)
);

CREATE TABLE zaposleni1 (
  id_zap smallint(5) NOT NULL,
  ime varchar(20) NOT NULL,
  prezime varchar(25) NOT NULL,
  sif_odj char(5),
  plata double(10,2),
  CHECK (id_zap>0 AND id_zap<100),
  PRIMARY KEY (id_zap),
  FOREIGN KEY (sif_odj) REFERENCES odjeljenja (sif_odj) on delete restrict
);

CREATE TABLE zaposleni2 (
  id_zap smallint(5) NOT NULL,
  ime varchar(20) NOT NULL,
  prezime varchar(25) NOT NULL,
  sif_odj char(5),
  plata double(10,2),
  CHECK (id_zap>99 AND id_zap<1000),
  PRIMARY KEY (id_zap),
  FOREIGN KEY (sif_odj) REFERENCES odjeljenja (sif_odj) on delete restrict
);


Ja uredno kreiram tabele, ali problem se javi prilikom unosa. Npr., ja mogu unijeti vrstu (100, 'Marko', 'Markovic', 'o1', 10000) u tabelu zaposleni1, iako ona ima ogranicenje da ne moze imati veci broj od 99. Znam da mi nesto fali, ali nemam pojma sta.

elem: koristio sam i komandu CHECK sa BETWEEN i AND, ali isto nije moglo.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15488
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2346 Profil

icon Re: Pomoc oko kreiranja tabele u MySQL-u04.10.2011. u 23:37 - pre 122 meseci
Citat:
Create Table Syntax:
...
The CHECK clause is parsed but ignored by all storage engines. See Section 1.8.5.4, “Foreign Key Differences”.
...


ako hoces da implementiras taj check moraces da koristis trigere
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Pomoc oko kreiranja tabele u MySQL-u05.10.2011. u 08:01 - pre 122 meseci
Vidi Partitioning.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

zeko_sisko
Kobe Bryant

Član broj: 224214
Poruke: 14
*.teol.net.



+1 Profil

icon Re: Pomoc oko kreiranja tabele u MySQL-u05.10.2011. u 14:28 - pre 122 meseci
Moj glavni problem je u sledecem. Ja trebam da kreiram pogled koji se zasniva na operatoru UNION ALL. E sada, da bi se preko tog pogleda mogla azurirati baza(umetanje ne moze, ali moze brisanje i azuriranje u uzem smislu mogu), taj pogled mora biti particionisan, tj. sadrzati bar jednu kolonu koja je particionisana da bi se moglo odrediti iz koje tabele tacno vodi odredjeni podatak. Npr., ja izvrsim sledeci kod:

Code:
create view unija
as
select * from zaposleni1
union all
select * from zaposleni2


Ovim kreiram pogled Unija, ali ne mogu izvrsiti nijednu od opcija azuriranja.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15488
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2346 Profil

icon Re: Pomoc oko kreiranja tabele u MySQL-u05.10.2011. u 16:08 - pre 122 meseci
a zasto radis modifikaciju kroz view. MySQL nije baza u kojoj je to normalno moguce. Nparavi stored procedure ili nesto slicno
 
Odgovor na temu

zeko_sisko
Kobe Bryant

Član broj: 224214
Poruke: 14
*.teol.net.



+1 Profil

icon Re: Pomoc oko kreiranja tabele u MySQL-u05.10.2011. u 16:30 - pre 122 meseci
Mene konkretno interesuju pogledi i azuriranje baze podatak preko pogleda. Naime, na nekom primjeru trebam objasniti azuriranje baze preko pogleda. Odradio sam i objasnio auzuriranje preko selekcije, projekcije, raznih spajanja, ali mi ne ide ovo sa azuriranjem preko unije, tj. preko operatora UNION ALL.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15488
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2346 Profil

icon Re: Pomoc oko kreiranja tabele u MySQL-u05.10.2011. u 16:51 - pre 122 meseci
kao sto rekoh to na MySQL NE MOZE!

http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html
http://dev.mysql.com/doc/refman/5.5/en/view-updatability.html

Citat:

There are also certain other constructs that make a view nonupdatable. To be more specific, a view is not updatable if it contains any of the following:

Aggregate functions (SUM(), MIN(), MAX(), COUNT(), and so forth)

DISTINCT

GROUP BY

HAVING

UNION or UNION ALL

Subquery in the select list

Certain joins (see additional join discussion later in this section)

Nonupdatable view in the FROM clause

A subquery in the WHERE clause that refers to a table in the FROM clause

Refers only to literal values (in this case, there is no underlying table to update)

Uses ALGORITHM = TEMPTABLE (use of a temporary table always makes a view nonupdatable)

Multiple references to any column of a base table.



 
Odgovor na temu

zeko_sisko
Kobe Bryant

Član broj: 224214
Poruke: 14
*.teol.net.



+1 Profil

icon Re: Pomoc oko kreiranja tabele u MySQL-u05.10.2011. u 16:55 - pre 122 meseci
Da, to sam i ja nasao. Medjutim, u nekim drugim knjigama, stoji da moze. Mada, vise nisam ni siguran da li se to odnosilo samo na SQL ili na MySQL. Tebi u svakom slucaju hvala na pomoci.

Pozdrav
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15488
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2346 Profil

icon Re: Pomoc oko kreiranja tabele u MySQL-u05.10.2011. u 17:17 - pre 122 meseci
SQL standard podrzava update preko view-a ako postoji 1:1 relacija. MySQL (kao i vecina db servera, ukljucujuci i ms sql server, oracle i razne druge) ima limite koji su striktniji od SQL standarda.

SQL standard dozvoljava update preko view-a koji je UNION ALL. DB2 na primer moze ali ima neke limite (ne radi neke optimizacije kada radis update kroz view), Oracle moze (nisam probao ali se secam da moze posto sam imao skoro klijenta koji je radio portovanje sa orakla na mysql pa mu je to bio problem) .. MSSQL, PgSQL i ostali - nemam pojma da li mogu ili ne ali to ti je lako da probas.. dodatno imas onaj "generalni" SQL forum ovde na ES-u gde imas ljude sa super mnogo iskustva sa raznim bazama .. pa mogu verovatno da ti probaju sve zivo de radi a de ne
 
Odgovor na temu

[es] :: MySQL :: Pomoc oko kreiranja tabele u MySQL-u

[ Pregleda: 1367 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.