RE: Need help with oracledump (contributed program)

2003-09-02 Thread Jim Smith
A TNSNAMES file isn't going to help unless you have the Oracle client
software
installed. If you had the software, you would already have a tnsnames file.

 -Original Message-
 From: Doug Poland [mailto:[EMAIL PROTECTED]
 Sent: 02 September 2003 02:58
 To: Martin Gainty
 Cc: [EMAIL PROTECTED]
 Subject: Re: Need help with oracledump (contributed program)


 On Mon, Sep 01, 2003 at 11:09:02AM -0700, Martin Gainty wrote:
  Doug
  I copied this from an SAP integration with Orace site
 
 http://saphelp.cob.csuchico.edu/OraHelp/Darwin36/inst36fhp/htm
 l/5-odbc.htm
 
  5.5.3 tsnames.ora File
  the file
  ORACLE_HOME/network/admin/tnsnames.ora must point to the
 listener (i.e., the
  TCP/IP port) on the database server. (ORACLE_HOME is the
 directory on Unix
  where Oracle is installed.) For example,
 
  ora_db0_net=
(DESCRIPTION=
   (ADDRESS=
 (PROTOCOL=TCP)
 (HOST=test-console.think.com)
 (PORT=1521)
   )
   (CONNECT_DATA=
  (SID=ORCL)
   )
)
  Note: Do not use tabs in the file tnsnames.ora.
 
  *OracleDump is performed by (SID=ORCL)*
 
  Keep us apprised to your progress...
 
 Hi Marty,

 Thanks for following up.  I've created a tnsnames.ora file
 in /usr/local/oracle/9.0.1/network/admin with the settings
 appropriate to my host.  When I run the following commands:

   % setenv ORACLE_HOME /usr/local/oracle/9.0.1
   % setenv ORACLE_SID VAPDEV
   % oracledump -c -u myUser -p myPassword

 I get the error message...

   % Can't call method do on an undefined value at
 /home/doug/bin/oracledump line 95.


 When I run it with the -x switch I see...

 Configuration: (remove --explain/-x option to run with this
 configuration)

   Database SID: VAPDEV
   Database user: myUser
   Database password: myPassword

   Tables: All tables

   Options:
 --default-databaseUse default database (VAPDEV)
 --with-table-comments Include table comments
 --with-column-commentsInclude column comments
 --default-precision   Set to 18
 --default-scale   Set to 0
 --complete-insert Includes list of column names
 in insert statements

 I'm not a perl guy and I'm not sure what to make of it other than the
 variables $nls_date_format, $nls_time_format, $nls_timestamp_format
 have data at run-time.

 Thanks again for your help so far...

 --
 Regards,
 Doug

  Marty Gainty
 
  - Original Message -
  From: Doug Poland [EMAIL PROTECTED]
  To: Jim Smith [EMAIL PROTECTED]
  Cc: [EMAIL PROTECTED]
  Sent: Monday, September 01, 2003 6:18 AM
  Subject: Re: Need help with oracledump (contributed program)
 
 
   On Mon, Sep 01, 2003 at 01:03:48PM +0100, Jim Smith wrote:
 I'm trying to figure out how to use the contributed program
 oracledump in an environment where I don't have a login to
 the *nix host running Oracle.  All my connectivity to the
 Oracle host is via port 1521 and JDBC.

 The oracle dump command seems to be looking for a SID in a
 file called tnsnames.ora.  Those do not exist on the system I
 am using.  Is it possible to still use oracledump in this
 case?

I doubt it. It looks as if oracledump requires Oracle's network
layer (SQL*Net) and unless you have that you can't do anything.
   
The oracle thin JDBC driver implements SQL*Net for java only,
but the other Oracle jdbc drivers require SQL*Net
   
   Thanks for the reply.  Looks like I'll have to roll my own in
   Java.
  
   --
   Regards,
   Doug

 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/[EMAIL PROTECTED]



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Need help with oracledump (contributed program)

2003-09-01 Thread Jim Smith
 I'm trying to figure out how to use the contributed program
 oracledump in an environment where I don't have a login to the *nix
 host running Oracle.  All my connectivity to the Oracle host is via
 port 1521 and JDBC.

 The oracle dump command seems to be looking for a SID in a file called
 tnsnames.ora.  Those do not exist on the system I am using.  Is it
 possible to still use oracledump in this case?

I doubt it. It looks as if oracledump requires Oracle's network layer
(SQL*Net) and
unless you have that you can't do anything.

The oracle thin JDBC driver implements
SQL*Net for java only, but the other Oracle jdbc drivers require SQL*Net


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Problem Query - Help Please

2003-08-29 Thread Jim Smith

 When I execute the following query I get duplicate
 product_id's as shown
 below:

 SELECT * FROM product, product_category_xref, category WHERE
 product_parent_id=''
 AND product.product_id=product_category_xref.product_id
 AND category.category_id=product_category_xref.category_id
 AND product.product_publish='Y'
 AND product.product_special='Y'  ORDER BY product_name DESC\G


 Results ( As you can see product_id 4139 occurs twice and I desire the
 product_id's to be unique in this query)

 I have also included the descriptions of the tables.

 I would appreciate someone assisting me with a query that
 works correctly.

Product 2139 has two different categories BOOKS and EDUCATION and therefore
appears twice.


   category_id: 7920cfab5c630ca88ceabcfda6b3848d
product_id: 4139
  product_list: NULL
   category_id: 7920cfab5c630ca88ceabcfda6b3848d
 vendor_id: 1
 category_name: BOOKS

   category_id: 4ee8c8513ee84c95c8eb7f24e63d7222
product_id: 4139
  product_list: NULL
   category_id: 4ee8c8513ee84c95c8eb7f24e63d7222
 vendor_id: 1
 category_name: EDUCATION

If you need to show all the categories you will probably need to retrieve
thos separately
 and build a list programatically to give something like

 categories: EDUCATION, BOOKS


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: INSERT .... SELECT

2003-08-14 Thread Jim Smith
Then you need to be even more explicit

INSERT INTO nye_opskrifter (foo,bar) SELECT foo, bar FROM opskrifter where
id
in($numbers)


 -Original Message-
 From: Lars Rasmussen [mailto:[EMAIL PROTECTED]
 Sent: 13 August 2003 19:22
 To: 'Jay Blanchard'; [EMAIL PROTECTED]
 Subject: INSERT  SELECT


 I tried that, but i dont work either.

 I need to insert a way that mysql doese'nt complain when i copy some
 records that have the same id (or that it just gives it an id
 according
 to the AUTO_INCREMENT)

 Thanks again

 //Lars Rasmussen

 -Oprindelig meddelelse-
 Fra: Jay Blanchard [mailto:[EMAIL PROTECTED]
 Sendt: 13. august 2003 19:59
 Til: Lars Rasmussen; [EMAIL PROTECTED]
 Emne: RE: INSERT  SELECT


 [snip]
 I used this command:
 INSERT INTO nye_opskrifter SELECT * FROM opskrifter where id
 in($numbers)

 But now it gives this error:
 Column count doesn't match value count at row 1
 [/snip]

 * does not return a specific number of columns, the work around is to
 specify the columns explicitly

 INSERT INTO nye_opskrifter SELECT foo, bar FROM opskrifter where id
 in($numbers)

 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/[EMAIL PROTECTED]



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: CREATE TABLE, INSERT INTO with SELECT in parentheses

2003-08-14 Thread Jim Smith
But why do you need the parentheses?

What is wrong with 

CREATE TABLE Foo2
SELECT * FROM sensei 
WHERE last_name IN (SELECT last_name 
  FROM sensei UNION ALL
  select last_name 
  FROM sensei) 
  ORDER BY e_mail;
 

 -Original Message-
 From: James Fryer [mailto:[EMAIL PROTECTED]
 Sent: 14 August 2003 09:41
 To: [EMAIL PROTECTED]
 Subject: Re: CREATE TABLE, INSERT INTO with SELECT in parentheses
 
 
 At 09:22 am 14/08/03, Nils Valentin wrote:
 I don' t understand your question. Why do you hink you that 
 the brackets
 would't work ?
 
 I tried that without any problems. Please post your code.
 
 Here is mine:
 
 SELECT * FROM sensei WHERE last_name IN (SELECT last_name 
 FROM sensei UNION
 ALL select last_name FROM sensei) ORDER BY e_mail;
 
 Here's some code that demonstrates what I mean:
 
 -- Cut Here --
 CREATE DATABASE Foobar;
 USE Foobar;
 CREATE TABLE Bar (id int(10) unsigned);
 
 # Works
 SELECT * FROM Bar;
 
 # Works
 CREATE TABLE Foo1 SELECT * FROM Bar;
 
 # Works
 (SELECT * FROM Bar);
 
 # Fails (syntax error)
 CREATE TABLE Foo2 (SELECT * FROM Bar);
 
 DROP DATABASE Foobar;
 -- Cut Here --
 
 Using MacOS so please forgive any errors due to case-sensitivity.
 
 Jim
 -- 
 James Fryer  /  [EMAIL PROTECTED]  /  [EMAIL PROTECTED]
 
 
 -- 
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/[EMAIL PROTECTED]
 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Joins and Unions

2003-08-14 Thread Jim Smith
 Adtrack -  holds data about an ads status (but NOT page number)
 Dummy - holds data about ad position, geometry and page number
 Stories - holds data about stories and their page number
 Pages -  holds data about pages and their status
 
 I want to be able to display a page and all its associated pieces but
 without duplicates. I know a union would display what I want, 
 but I can't
 get all the necessary data without doing a join.
 
 The current query is:
 
 SELECT 
 dummy.page_number,dummy.ad_num,adtrack.ad_status,stories.story
 _name,stories.
 story_status FROM adtrack,dummy,stories WHERE adtrack.ad_num 
 = dummy.ad_num
 AND dummy.page_number = stories.page_number order by 
 dummy.page_number ASC

What about this?

SELECT 
dummy.page_number,stories.story_name,stories.story_status 
FROM dummy,stories 
WHERE dummy.page_number = stories.page_number 
UNION
SELECT dummy.page_number,dummy.ad_num,adtrack.ad_status
FROM adtrack,dummy
WHERE adtrack.ad_num = dummy.ad_num
order by 1 ASC


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: CREATE TABLE, INSERT INTO with SELECT in parentheses

2003-08-14 Thread Jim Smith
Are you saying that any query containing parentheses fails?
In that case sub selects won't work either.


 -Original Message-
 From: James Fryer [mailto:[EMAIL PROTECTED]
 Sent: 14 August 2003 10:07
 To: [EMAIL PROTECTED]
 Subject: RE: CREATE TABLE, INSERT INTO with SELECT in parentheses


 At 09:47 am 14/08/03, Jim Smith wrote:
 But why do you need the parentheses?

 This was a simplified query for example purposes.

 The real query looks more like

(SELECT ...) UNION (SELECT ...) ORDER BY ...

I repeat. Why do you need the parentheses? Union queries don't require them.

 I could rewrite this with subselects but I have found them to
 be slower.

 My question is, why do the parentheses cause a syntax error
 and is this a bug?

 Jim
 --
 James Fryer  /  [EMAIL PROTECTED]  /  [EMAIL PROTECTED]


 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/[EMAIL PROTECTED]



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: CREATE TABLE, INSERT INTO with SELECT in parentheses

2003-08-14 Thread Jim Smith

 
 Sorry, missed this.
 
 They do need them if you want to use ORDER BY on the result 
 of the UNION.
 

Only if you are also ordering the component parts of the union. 
This works

create table y
select * from x 
union
select * from x 
order by 1 desc

but this doesn't

create table y
select * from x order by a
union
select * from x order by a
order by 1 desc

This strikes me as a peculiar thing to want to do. Is it ANSI compliant?


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Re: MySQL field data type for ISBN numbers

2003-08-12 Thread Jim Smith


 -Original Message-
 From: Tomasz Korycki [mailto:[EMAIL PROTECTED]
 Sent: 11 August 2003 05:26
 To: [EMAIL PROTECTED]
 Subject: OT: Re: MySQL field data type for ISBN numbers
 
 
 At 21:08 2003-08-10, you wrote:
 On Sun, Aug 10, 2003 at 05:25:05PM -0700, James Johnson wrote:
  
   I have a MySQL database for books. The ISBN field is set 
 as varchar(15) and
   I've put a test ISBN number in of 1--111-11.
 
 Note that ISBN numbers are a maximum of 13 characters, not 15.  Ten
 digits, three dashes.  If you really want to save space, the 
 last digit
 is just a check digit and can always be determined through a 
 formula on
 the other digits, so as long as you verify every ISBN before 
 you INSERT
 it, you can save another digit.
 
 Hmmm...And how do You come up with an 'X' as the last digit, 
 as many books 
 on the shelves around me do?
 
I don't know which particular check digit algorithm is used for ISBNs
but the mod-11 algorithm uses the digits 0-9 and X for 10.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Help with count(*)

2003-08-11 Thread Jim Smith

 what ever happend to a unique primary key like userID ?

User is not the primary key. This is a logging table so the primary key is
likely to be a timestamp of some sort.

Read the question.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: standardized naming system ?

2003-08-01 Thread Jim Smith

 Hello list,

 is there a common naming system for db objects ?

Thousands.

 Like:

 1) Tables: mytable, tblmytable, tbl_mytable

 2) Indices: idx_anindex

 3) Columns: int_somenumber, date_lastupdate

 4) id   for the numerical primary key e.g. table  customers.id
  and then for referencing foreign keys
 table addresses :  addresses.customer_id  or
 addresses.customer_fk

 OK, I know I could name them the way I want but perhaps there is some
 kind of common sense in this regard ?

Common sense will do, but here is my take on it.

There are three main objectives - portability, maintainability and
consistency.

General.
Use long names. Don't abbreviate unnecessarily, but don't go to far that
you have
to rename all your tables if you move to a different DBMS. A max of 30
chars should fit most DBMSs.

Use lower case names, with words separated by underscores '_'. Some DBMSs
are case
sensitive, others aren't and some convert all names to upper case ( this is
an ANSI
standard feature, I believe). If you use camel case ( studentClassScores),
this could become
STUDENTCLASSSCORES which isn't very readable, whereas STUDENT_CLASS_SCORES
is much better.

Don't use reserved words. Most DBMSs allow you to use reserved words with
various degrees of effort, but why bother. Also try to avoid simple names
which
might be a reserved word in another DBMS.

Tables.
Give tables a clear simple name which represents the content. If it holds
student records, call
it students; course details, courses etc.
Also assign each table a unique 2-4 letter prefix for use in naming objects
which belong to that table.

Columns
Again say what it is. I use the prefix referred to above in all column
names, but some people think that
is a waste of name space.
e.g std_id, std_surname, std_forename, student_birthdate, crs_name,
crs_tutor_id, etc

Constraints
Use the prefix
Primary Key   std_pk
Foreign Keys  std_fk_col   ( i.e. source_prefix_FK_target_prefix
Unique  Keys   std_uk_nnwhere nn is a sequence number. Some people like
std_uk_column_name, but
   if you have a composite key, that doesn't 
work.

Indexes
Where an index is used to enforce (or instead of) a unique or primary key
constraint, same name as the constraint.
Primary Key index   std_pk
Unique Index  std_uk_nn
Non-unique indexstd_nu_nn

If indexes share the same namespace as constraints, stick an i_ on the
front of the index name.



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: RE: standardized naming system ?

2003-08-01 Thread Jim Smith
Wasn't my question.

Why do you need to label a table as a table?  There is some merit in using
type prefixes in VB because of its loose typing, but it makes no sense in a
database context where the types of objects are quite distinct.

 -Original Message-
 From: Adam Fortuno KOVICK [mailto:[EMAIL PROTECTED]
 Sent: 01 August 2003 15:24
 To: [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Subject: Re: RE: standardized naming system ?


 Jim,

 Great question!

 I use the ol'Reddick VBA naming conventions.

 tbl - table
 idx - index
 fld - field

 You can search them in google, but I'd like to know if MySQL has its
 own established conventions too.

 Regards,
 A$

 - Original Message -
 From: Jim Smith [EMAIL PROTECTED]
 Date: Friday, August 1, 2003 10:03 am
 Subject: RE: standardized naming system ?

  
   Hello list,
  
   is there a common naming system for db objects ?
 
  Thousands.
 
   Like:
  
   1) Tables: mytable, tblmytable, tbl_mytable
  
   2) Indices: idx_anindex
  
   3) Columns: int_somenumber, date_lastupdate
  
   4) id   for the numerical primary key e.g. table  customers.id
and then for referencing foreign keys
   table addresses :  addresses.customer_id  or
   addresses.customer_fk
  
   OK, I know I could name them the way I want but perhaps there is
  some kind of common sense in this regard ?
 
  Common sense will do, but here is my take on it.
 
  There are three main objectives - portability, maintainability and
  consistency.
 
  General.
  Use long names. Don't abbreviate unnecessarily, but don't go to
  far that
  you have
  to rename all your tables if you move to a different DBMS. A
 max
  of 30
  chars should fit most DBMSs.
 
  Use lower case names, with words separated by underscores '_'.
  Some DBMSs
  are case
  sensitive, others aren't and some convert all names to upper
 case
  ( this is
  an ANSI
  standard feature, I believe). If you use camel case (
  studentClassScores),this could become
  STUDENTCLASSSCORES which isn't very readable, whereas
  STUDENT_CLASS_SCORESis much better.
 
  Don't use reserved words. Most DBMSs allow you to use reserved
  words with
  various degrees of effort, but why bother. Also try to avoid
  simple names
  which
  might be a reserved word in another DBMS.
 
  Tables.
  Give tables a clear simple name which represents the content.
 If
  it holds
  student records, call
  it students; course details, courses etc.
  Also assign each table a unique 2-4 letter prefix for use in
  naming objects
  which belong to that table.
 
  Columns
  Again say what it is. I use the prefix referred to above in all
  columnnames, but some people think that
  is a waste of name space.
  e.g std_id, std_surname, std_forename, student_birthdate,
 crs_name,
  crs_tutor_id, etc
 
  Constraints
  Use the prefix
  Primary Key   std_pk
  Foreign Keys  std_fk_col   ( i.e.
 source_prefix_FK_target_prefix
  Unique  Keys   std_uk_nnwhere nn is a sequence number. Some
  people like
  std_uk_column_name, but
if you have a composite
  key, that doesn't work.
 
  Indexes
  Where an index is used to enforce (or instead of) a unique or
  primary key
  constraint, same name as the constraint.
  Primary Key index   std_pk
  Unique Index  std_uk_nn
  Non-unique indexstd_nu_nn
 
  If indexes share the same namespace as constraints, stick an i_
  on the
  front of the index name.
 
 
 
  --
  MySQL General Mailing List
  For list archives: http://lists.mysql.com/mysql
  To unsubscribe:
  http://lists.mysql.com/[EMAIL PROTECTED]
 




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Advice wanted on Data Structure

2003-07-31 Thread Jim Smith
 -Original Message-
 From: Donald Tyler [mailto:[EMAIL PROTECTED]
 Sent: 30 July 2003 16:42
 To: [EMAIL PROTECTED]
 Subject: Advice wanted on Data Structure


 I have a question that I hope I can explain well enough:

 I am trying to figure out a data structure for an inventory
 system. The
 system contains:

   Items
   Kits(Made from a collection of Items and/or other Kits)

 Now my question is:

 Is there any way to structure this in a database so that I could run a
 single query to get the contents of a kit, even though it
 contains other
 kits?

 My problems occur when I try to create the tables as so:

 ITEMS:KIT_CONTENTSKITS
   KIT_IDKIT_ID
 ITEM_ID-ITEM_ID Description
 Description
 Price
 Etc


This is a classic problem known as a Bill of Materials explosion and
unfortunately relational databases don't handle it very well.

Storage is easy(ish).

Fundamentally you have a recursive many to many relationship between
components, resolved as

Component:  Component_Link
 id  ---|---assembly_id
 name|---subcomponent_id

That is 2 foreign keys back to the same master table, if the diagram isn't
clear.

In OO terms, both item and kit are subclasses of component. There are may
ways to implement that
in a relation database, but the simplest is to store them as a single table
with a type field.

Retrieval is harder.

To get the contents of an assembly (kit),
select *
from component as assembly, component as subcomponent, component_link
where assembly.name=?
and component_link.assembly_id=assembly_id
and subcomponent.id= componentLink.subcomponent_id

BUT, this only goes down to one level which may be enough for most purposes,
but for stock monitoring (e.g. I've sold 10 of kit ZZA102, what effect does
that have
on my item stocks), you need to do it recursively.

With mysql ( and most other DBMS) the only alternative is to do the
recursion in a program -
ie
  get all first level children
foreach get next level
foreach get next level
etc

Oracle has an excellent CONNECT BY extension to standard sql which does this
brilliantly, and I believe mysql AB are
planning to imlpement it sometime.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: WHERE x IN (SELECT x ...

2003-07-31 Thread Jim Smith
 
 If this is the case, is there a crude workaround method of 
 attempting to
 perform the following until such a time as it is?
 
 SELECT COUNT(*) FROM messages WHERE forum_id IN (SELECT forum_id FROM
 forums WHERE team_no = 400)

select count(message_id)   -- assuming you have  a non-null id column 
from messages m inner join forums f
 on m.forum_id=f.forun_id
 where team_id=400

This will give the wrong result if a message can appear in more
than one forum. In that case use count distinct(message_id)


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Index Field

2003-07-25 Thread Jim Smith

   Just a quick question on whether I need both fields to
 be indexed.

 The table is as below.. I'm wondering if I need to have these
 2 fields -
 fa_id  serial_no

 fa_id would be a 7 character int like 001, 002
 serial_no would be like WMACK001, WMACM121

 most of the time, we'll be referencing the serial_no more as
 it's what's
 being used most often in my nature of work. Initially I
 thought that I could
 index or make serial_no my primary key but as it's not fully
 numeric, I'm
 not sure if this is advisable.


There is nothing wrong with a non-numeric primary key. A string
search/comparison
might be marginally slower than a numeric search but there shouldn't be much
difference.
Depending on the size of you database, there may be storage implications if
you need to
have the serial_no as a foreign key in lots of places.


 Can anyone help me out? Do I need the fa_id field? If I were
 to use mysql to
 query for data, most likely I'll be using the Serial_no as
 the reference and
 not fa_id.

I would say you don't need it. Some people like to put a surrogate key on
everything, but
if you have a natural key why not use it.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: mysql setup compared to oracle

2003-07-17 Thread Jim Smith
I'm fairly new to mysql myself, but I'll have a go.

The mysql manual is at http://www.mysql.com/doc/.

I've only dipped into it, but it seems to be pretty good.

 Questions:

 1. is mysql simular organized as oracle: instance/users/tables,
   so that I have to connect to chossen instance and user?

Yes and no.
mysql is more like Sybase/MS SQL server where you have a single instance and
multiple databases.
 An instance is called a server and is represented by the mysqld process.

 2. does mysql also use the term tablespace and can it
 administrated in the
   same way?

No and yes.

The default table storage structure is 'MyIsam' where each table is
represented by a separate file (actually several files for data and
indexes). There is a a new alternative storage structure 'InnoDB' which is
more like tablespaces. I know nothing about it.
http://www.mysql.com/doc/en/InnoDB_overview.html

 3. when creating a mysql database, how to determine where the
 datafiles
   are located?
The data directory is specified in my.cnf and all data files are created
there. As far as I know mysql doesn't support
fine grained control of storage the way Oracle does. There may be more
control with InnoDB
 4. is there something like a init.ora?
Yes. It is my.cnf

There is a global file in /etc which is installation wide and
server(instance) specific optios in DATADIR/my.cnf.

See http://www.mysql.com/doc/en/Option_files.html

 5. is it possible to start several databases from the same
 installation?
Yes. Although this is the wrong question really. You can have several
servers (instances) and each server can have several databases.

 6. is there something like ORACLE_HOME and ORACLE_SID?

Not sure. There are MYSQL_UNIX_PORT (for local connections) AND
MYSQL_TCP_PORT ( remote connections) which are sort of equivalent to
ORACLE_SID.

 Hope you can give me details prepared for a newbie and point me to the
 suitable commands or docs.

 Thanks in advance
   Harald

 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/[EMAIL PROTECTED]



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: mysql setup compared to oracle

2003-07-17 Thread Jim Smith
 
 1. No, especially not MyISAM. In MyISAM, a database (you can compare
 that to instance) is just a directory on disk. Every table in this DB
 (instance) again is file (well actually 3 files, one for data, one for
 metadata, one for index information).

Actually the server is equivalent to an instance 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: derived tables

2003-07-16 Thread Jim Smith
I don't Mysql very well, but I would be very surprised if that was
supported, based on my experience with Oracle. You need to distinguish
between data and database object names. You can use derived_tables to return
data, but niot names.

You can't do  select * from 'table', because 'table' is a string, not an
object name, your subquery is returning 'table'.

You need to use dynamic sql for that sort of thing.

 -Original Message-
 From: Shawn McGinn [mailto:[EMAIL PROTECTED]
 Sent: 13 July 2003 18:02
 To: [EMAIL PROTECTED]
 Subject: derived tables


 I would like to select data from a table where the table name
 is located
 in another table, and I am using the following query:

 select t1.* from (select tbl_name from user_table where
 user=guy) t1;

 This should return the data from table 'tbl_name', but I only get
 results from the subquery (ie. the query as a whole returns
 'tbl_name',
 not it's contents)  Where am I going wrong?

 I am using version 4.1.0-alpha-standard.

 Shawn


 --
 Shawn McGinn [EMAIL PROTECTED]
 UNB


 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe:
 http://lists.mysql.com/[EMAIL PROTECTED]



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: Extracting data from SQL Server *.DB file

2003-07-15 Thread Jim Smith

I've read through the archives and spent hours on Google but I still can't
figure this out.  I must extract the data from a SQL Server *.DB file.
Viewing
the raw text, I can see that there views, grants, etc. at the top of the
file,
but this is a process that could not possible be done by hand.  I've tried
using
Crystal Reports and SQLyog but they don't seem to work, either.

As the end result is to convert this data for use in MySQL, I'm hoping that
the
fine folks on here may be able to help me.  Thanks a lot.

The only reasonable way to get data out of a SQL Server DB file is to use
SQLServer.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: MySQL vs. PostgreSQL -- speed test

2003-07-14 Thread Jim Smith
 If maximum speed is critical.
 
 It's easy to lose sight of the fact that speed is not the 
 only criterion 
 in choosing a DBMS.  Features, stability, security, and so on can be 
 just as important or more so.  No single DBMS is going to win all the 
 prizes; the trick is to find the one with the right balance.
 

I agree with your opinion in 100%, but in my case I need DBMS with
features like subselectes/utf-8/stored procedures but the speed is also
very important issue.

You might have to spend money!


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



RE: MySQL vs. PostgreSQL -- speed test

2003-07-14 Thread Jim Smith
 I agree with your opinion in 100%, but in my case I need DBMS with
 features like subselectes/utf-8/stored procedures but the
 speed is also
 very important issue.

 You might have to spend money!



You are saying that there is DBMS with all this features and it is as
fast as MySQL ?

I don't know, but if there is, it is one you will have to pay for.
In any case, speed is as much a matter of application design as a DBMS
characteristic.

As a minor side issue, we did some _very limited_ testing with MS SQLServer
2000 using unicode v ascii queries. Using unicode, queries tended to run at
about half the speed compare to using ascii.
 This was client server, so it is likely that the increased network traffic
is to blame, but bear it it mind.

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]